微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用服务连接获取OAuth令牌

如何解决使用服务连接获取OAuth令牌

我正在使用Azure DevOps部署Web应用程序并为sql数据库执行数据库迁移。我有一个服务连接设置,并且能够使用Azure CLI部署Azure资源,例如

- task: AzureCLI@2
  displayName: 'Deploy Azure resources'
  inputs:
    azureSubscription: 'My Service Connection'
    scriptType: 'bash'
    scriptLocation: inlinescript
    inlinescript: ./deploy.sh

现在,我想执行数据库迁移,并且想使用服务连接进行身份验证(已向应用程序注册授予对sql数据库的访问权限)。我的理解是我可以使用OAuth令牌登录sql数据库-我的问题是如何使用服务连接获取该令牌。

请注意,我无法将客户端机密添加到Azure中的服务主体,因此也无法使用/oauth2/token来对client_secret进行REST调用(我在企业领域工作,事情就被锁定了。)

鉴于管道可以访问Azure DevOps服务连接,我的感觉是必须有某种方法可以使用它来获取https://database.windows.net/资源有效的OAuth令牌-但是如何?

解决方法

在以下情况下,您可以尝试解决方案:Azure Pipeline connect to SQL DB using service principal

添加用于检索承载令牌的Azure CLI任务。然后通过 这是使用令牌的Azure Powershell任务。

  <form class="login-form" th:action="@{/checkUser}" method="post" th:object="${user}">

<!-- Success Massage for the user after registration -->
<div style="text-align: center; font-size: 15px; color: #797979; font-weight: bold">
  <span style="color: yellow;" th:utext="${message}"></span>
  <span style="color: yellow;" th:utext="${messageUserNotExist}"></span>
</div>
<div class="login-wrap">
  <p class="login-img"><i class="icon_lock_alt"></i></p>
  <div class="input-group">
    <span class="input-group-addon"><i class="icon_profile"></i></span>
    <input type="text" class="form-control" placeholder="Username" id="username" name="username" autofocus>
  </div>
  <div class="input-group">
    <span class="input-group-addon"><i class="icon_key_alt"></i></span>
    <input type="password" class="form-control" placeholder="Password" id="password" name="password" autocomplete="off">
  </div>
  <!--<label class="checkbox">
       <span class="pull-right"><input type="submit" value="Login" onclick="lsRememberMe()"></span>
  </label>-->

  <span class="pull-right"><input type="checkbox" value="lsRememberMe" id="rememberMe"> Remember me </span>
  <span class="pull-left"><a th:href="@{/forgotPassword}">Forgot Password?</a></span>
  <span><button class="btn btn-primary btn-lg btn-block" type="submit" value="Login" id="submit" onclick="lsRememberMe()">Login</button></span>
  <a th:href="@{/registerPage2}" class="btn btn-info btn-lg btn-block">Sign Up</a>

  <!-- <a th:href="@{/users/checkUser}" class="btn btn-info btn-lg btn-block"> Login</a> -->
  <!-- <input type="submit" value="Login" onclick="lsRememberMe()"> -->
  <!-- <button class="btn btn-primary btn-lg btn-block" type="submit" value="Login" onclick="lsRememberMe()">Login</button> -->
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。