Azure active directory 验证签名时出现Azure AD错误的Hashicorp Vault OIDC身份验证方法
我正在尝试使用Azure AAD作为提供程序来保护vault UI和命令行登录。我正在按照文档进行操作,但在结束时显示以下错误消息:Azure active directory 验证签名时出现Azure AD错误的Hashicorp Vault OIDC身份验证方法,azure-active-directory,hashicorp-vault,Azure Active Directory,Hashicorp Vault,我正在尝试使用Azure AAD作为提供程序来保护vault UI和命令行登录。我正在按照文档进行操作,但在结束时显示以下错误消息: Token verification failed. error validating signature: failed to verify signature: failed to verify id token signature 下面是我设置auth方法所遵循的步骤 创建了Azure应用程序注册,允许我重定向URL 我拥有Microsoft Gra
Token verification failed. error validating signature: failed to verify signature: failed to verify id token signature
下面是我设置auth方法所遵循的步骤
组.Read.All
权限https://login.microsoftonline.com/{my_tenant_id}/v2.0
https://graph.microsoft.com/.default
的“groupMembershipClaims”修改了应用程序清单:“全部”,
vault auth enable oidc
vault write auth/oidc/config @azuread-auth-config.json
# Success! Data written to: auth/oidc/config
vault write auth/oidc/role/default @azuread-default-role-config.json
azuread auth config.json文件包含以下内容
{
"oidc_discovery_url": "https://login.microsoftonline.com/{my_tenant_id}/v2.0",
"oidc_client_id": "{my_client_id}",
"oidc_client_secret": "{my_client_secret}",
"default_role": "default"
}
{
"allowed_redirect_uris": [
"http://localhost:8250/oidc/callback",
"https://{my_hostname}/ui/vault/auth/oidc/oidc/callback",
"http://localhost:8200/ui/vault/auth/oidc/oidc/callback"
],
"groups_claim": "groups",
"oidc_scopes": [
"https://graph.microsoft.com/.default"
],
"policies": [
"default"
],
"user_claim": "email",
"bound_audiences": [
"{my_client_id}"
],
"verbose_oidc_logging": "true"
}
azuread default role config.json
文件包含以下内容
{
"oidc_discovery_url": "https://login.microsoftonline.com/{my_tenant_id}/v2.0",
"oidc_client_id": "{my_client_id}",
"oidc_client_secret": "{my_client_secret}",
"default_role": "default"
}
{
"allowed_redirect_uris": [
"http://localhost:8250/oidc/callback",
"https://{my_hostname}/ui/vault/auth/oidc/oidc/callback",
"http://localhost:8200/ui/vault/auth/oidc/oidc/callback"
],
"groups_claim": "groups",
"oidc_scopes": [
"https://graph.microsoft.com/.default"
],
"policies": [
"default"
],
"user_claim": "email",
"bound_audiences": [
"{my_client_id}"
],
"verbose_oidc_logging": "true"
}
添加行“详细日志记录”:“true”
仅用于调试目的
我遵循的登录过程
在Vault UI上启动登录过程后,我将被重定向到url
https://login.microsoftonline.com/{my_tenant_id}/oauth2/v2.0/authorize?client_id={my_client_id}&nonce=5e52640c66c2dsf64f5ds3f1sd46dc6717&redirect_uri=https%3A%2F%2F{my_hostname}%2Fui%2Fvault%2Fauth%2Foidc%2Foidc%2Fcallback&response_type=code&scope=openid+https%3A%2F%2Fgraph.microsoft.com%2F.default&state=744a03304e71ed7e4dedgrd3541544
然后我会收到登录成功消息,它会自动关闭窗口
我还在跟踪vault服务器上的日志,可以看到已生成令牌。如果我继续粘贴JWT令牌,它将被解密,我可以识别正确的值。
我可以在我的用户下看到大约90个具有正确租户id和客户端id的组
如果我使用命令行vault登录-方法oidc role=default
尝试登录过程,我会收到相同的错误消息
Code: 400. Errors:
* Token verification failed. error validating signature: failed to verify signature: failed to verify id token signature
我也遇到了同样的麻烦。从Azure中删除应用程序并再次对其进行配置有帮助 有效的我的Vault角色配置:
vault write auth/oidc/role/<< oidc_role_name >> -<<EOF
{
"allowed_redirect_uris" : ["http://localhost:8250/oidc/callback","https://vault.example.com:8200/ui/vault/auth/oidc/oidc/callback"],
"user_claim" : "sub",
"policies" : "default",
"oidc_scopes" : "https://graph.microsoft.com/.default,profile,email",
"verbose_oidc_logging" : "true"
}
vault write auth/oidc/role/>-我遇到了同样的问题。从Azure中删除应用程序并再次对其进行配置有帮助
有效的我的Vault角色配置:
vault write auth/oidc/role/<< oidc_role_name >> -<<EOF
{
"allowed_redirect_uris" : ["http://localhost:8250/oidc/callback","https://vault.example.com:8200/ui/vault/auth/oidc/oidc/callback"],
"user_claim" : "sub",
"policies" : "default",
"oidc_scopes" : "https://graph.microsoft.com/.default,profile,email",
"verbose_oidc_logging" : "true"
}
vault write auth/oidc/role/>请查看此线程@TonyJu是的,这是真的,在jwt.io上,我们必须指定HS256算法,而不是MS文档中提到的RS256,以查看签名验证。我尝试使用设置jwt\u supported\u algs
强制HS256,但根据插件,它似乎不是受支持的算法。我的配置与您完全相同,我没有收到电子邮件索赔保险库:在令牌中找不到索赔“email”。我注意到,“用户声明”行中有双逗号“:“电子邮件”,
,请尝试修复它,可能它的解析不好,并且角色在web ui中不可见。@MUHAHA我仔细检查了一下,我的设置json中没有双逗号。问题就在这里。@DoRivard你找到解决这个问题的办法了吗?遇到同样的问题请看一下这个线程@TonyJu是的,这是真的,在jwt.io上,我们必须指定HS256算法,而不是MS文档中提到的RS256,以查看签名验证。我尝试使用设置jwt\u supported\u algs
强制HS256,但根据插件,它似乎不是受支持的算法。我的配置与您完全相同,我没有收到电子邮件索赔保险库:在令牌中找不到索赔“email”。我注意到,“用户声明”行中有双逗号“:“电子邮件”,
,请尝试修复它,可能它的解析不好,并且角色在web ui中不可见。@MUHAHA我仔细检查了一下,我的设置json中没有双逗号。问题就在这里。@DoRivard你找到解决这个问题的办法了吗?在同一问题上结结巴巴