- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 AAD 帐户连接到 Azure SQL DB,作为我的 Azure 管道的一部分。我大致有以下内容:
具有关联服务连接的 Azure 管道。Azure SQL DB,其中 AAD 管理员设置为(连接的)服务主体。获取服务主体的不记名 token 的 Azure CLI 任务。
然后,我有一个 Azure Powershell 脚本,它使用不记名 token 连接到数据库:
$conn = new-object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=tcp:$($sqlServer),1433;Initial Catalog=$($sqlDB);Persist Security Info=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
$conn.AccessToken = $env:ACCESSTOKEN
$conn.Open()
这会导致以下错误:
Login failed for user '<token-identified principal>
允许运行管道的代理通过 SQL Server 防火墙。
在数据库日志中,错误代码为 18456,状态为 132(AAD 失败)。
我已经使用 Azure CLI 手动测试了这一点,使用服务连接服务主体登录,请求不记名 token ,然后连接到数据库(使用上面的代码),这有效。
如果我比较 Pipeline 测试和 Azure CLi 手动测试的不记名 token ,它们是相同的(除了 exp、uti 和 aio)
有什么想法吗?
最佳答案
根据this doc :
This authentication method allows middle-tier services to obtain JSON Web Tokens (JWT)
您需要使用id_token用于 Azure AD 身份验证。从您的脚本来看,您似乎正在使用管道环境访问 token 。
另一方面,您可以导航到Azure Portal -> Azure Sql -> Query Editor页面。然后您可以选择Active Directory authentication
并检查是否可以成功登录数据库。
如果您遇到问题Login failed for user '<token-identified principal>
在此页面中,您可以尝试将目标帐户添加为 Active Directory admin
在 SQL Server 上或 create contained users mapped to Azure AD identities .
此外,您还可以使用Azure AD帐户和密码登录Azure SQL。
脚本:
$conn = new-object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=tcp:$($sqlServer),1433;Initial Catalog=$($sqlDB);Persist Security Info=False;User ID:User account;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication=Active Directory Password;"
$conn.Open()
更新:
对于访问 token :
您可以尝试在 Azure Cloud shell 中运行 Azure CLI 命令:
az login
az account get-access-token --resource https://database.windows.net
然后您就可以获得访问 token 。
根据我的测试,如果您使用此访问 token 连接 Azure Sql ,它可以按预期工作。
更新2:
得到它。如果您将服务主体设置为 AD 管理员。 手动服务主体类型服务连接可以工作。
例如:
- task: AzureCLI@2
displayName: 'Azure CLI '
inputs:
azureSubscription: manual service connection name
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
az account get-access-token --resource https://database.windows.net
enabled: false
访问 token 可用于连接 Azure Sql。
关于连接到 Azure SQL 数据库 AAD 的 Azure Pipelines - 用户“< token 识别的主体>”登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62534128/
来自他们的文档 - https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-pta-how-it-
AAD 管理角色只能直接分配给用户。无法通过 AAD 组分配它们。 现在 PIM 中有一个“特权访问组(预览)” Pane ,但我找不到任何方法在 Azure AD 组管理中启用角色可分配组。因此,P
AAD 应用程序需要哪些 OAuth API 和权限,以便我可以使用它来授权创建新的 AAD 应用程序,如本 example 中所述。 最佳答案 您可以在 Azure AD Graph API 上向应
我正在配置一堆 Azure Active Directory (AAD) 应用程序,并希望同一组用户成为所有应用程序的所有者。我创建了一个 AAD 组来放置这些用户,但是当我尝试将该组分配为所有者时,
AAD 应用程序需要哪些 OAuth API 和权限,以便我可以使用它来授权创建新的 AAD 应用程序,如本 example 中所述。 最佳答案 您可以在 Azure AD Graph API 上向应
我正在配置一堆 Azure Active Directory (AAD) 应用程序,并希望同一组用户成为所有应用程序的所有者。我创建了一个 AAD 组来放置这些用户,但是当我尝试将该组分配为所有者时,
需要将用户的照片持续同步(不仅仅是一次)到 AD 环境中,然后同步到 Azure AD 中。根据下面的文章,该属性仅在初始同步时同步一次。当有人获得新徽章时,我们的安全小组会更新这些照片,然后我们会更
我们有一个 Office 365 租户,用于为我们的组织提供基本 AD 功能(加入桌面 PC、身份验证等)。 我们还在构建一个独立的移动和网络应用程序。我们有一个与我们的主要 AAD 租户绑定(bin
有人可以帮我解决以下问题吗?提前致谢 我在实验室中设置 AD Connect,并且我的实验室 Active Directory 用户可以正常同步到我的实验室 Azure AD 然后,我第二次通过 Az
我们有一个 Office 365 租户,用于为我们的组织提供基本 AD 功能(加入桌面 PC、身份验证等)。 我们还在构建一个独立的移动和网络应用程序。我们有一个与我们的主要 AAD 租户绑定(bin
有人可以帮我解决以下问题吗?提前致谢 我在实验室中设置 AD Connect,并且我的实验室 Active Directory 用户可以正常同步到我的实验室 Azure AD 然后,我第二次通过 Az
我希望我们的团队在配置与生产 AAD 非常接近的开发 AAD 中完成所有开发工作。这样,我们的工作就不需要更改为在生产环境中工作。 目前我们的团队拥有: 生产 AAD 租户具有: 生产订阅 开发订阅;
使用 Confluence 和 Azure AAD 对 SCIM 实现进行测试,并使用 OIDC 进行身份验证,并遇到以下问题: 如果从 Confluence 中手动删除 SCIM 配置帐户,Azur
使用 Node.js 的 Microsoft MSAL 快速入门的修改版本(原始 here ),我使用隐式流成功接收了 Azure 存储 API 的访问 token 。该 token 包含组声明,但声
我想在遥测中记录以下内容以用于诊断和使用目的: Azure 订阅 ID AAD 租户 ID AAD 应用客户端 ID 我应该将它们视为 secret /PII 并对它们进行哈希/加密吗? (不用说,我
场景: 用户使用域帐户登录桌面 用户在 AAD 中拥有一个与域帐户不同的 Azure 帐户 为 Azure 帐户配置了 AAD 身份验证的 Azure SQL 数据库 用户如何使用 SQL Serve
场景: 用户使用域帐户登录桌面 用户在 AAD 中拥有一个与域帐户不同的 Azure 帐户 为 Azure 帐户配置了 AAD 身份验证的 Azure SQL 数据库 用户如何使用 SQL Serve
我创建了一个使用 Azure Active Directory 保护的 WebAPI。我现在需要对此进行测试并尝试将 fiddler 与授权 header 一起使用。我正在尝试使用以下代码生成 tok
使用 API Graph,我创建了一个包含电子邮件地址的 ADD 组。该地址的域会自动添加到租户中的主要域中。我无法更改租户上的默认域,但我需要将创建的组的域更改为主域以外的域。我怎样才能实现这个目标
我有几个 API(“A 组和 B 组”),它们调用一个中央 API(“API X”)。全部通过 Azure AD 进行身份验证。 在“API X”中,我想将几个路由限制为可用路由的子集。 /api
我是一名优秀的程序员,十分优秀!