首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Azure OAuth2代码流-没有组在访问令牌中声明(也没有“hasgroup”)

Azure OAuth2代码流-没有组在访问令牌中声明(也没有“hasgroup”)
EN

Stack Overflow用户
提问于 2020-01-09 08:19:01
回答 1查看 955关注 0票数 0

我正在使用OAuth2代码流,并试图将用户的组返回到我的访问令牌中。我读到的每一篇文章都说,我应该看到一个团体的主张,或者是一个群体的主张,但我都没有看到。

我修改了我的客户端应用程序的App注册清单中的以下字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [
            {
                "name": "groups",
                "source": null,
                "essential": false,
                "additionalProperties": [
                    "dns_domain_and_sam_account_name"
                ]
            }
        ],
        "saml2Token": []
    },

下面是我的登录重定向url (login.microsoftonline.com)查询字符串的一个例子.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client_id=<clientId>
&response_type=code
&redirect_uri=<redirectUri>
&response_mode=query
&scope=<appScope>%20offline_access
&state=67890

下面是一个使用(login.microsoftonline.com/{tenantId}/oauth2/v2.0/token)请求令牌的查询字符串示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client_id=<clientId>
&scope=<uriEncodedScopes>%20offline_access
&redirect_uri=<uriEncodedRedirectUri>
&code=<authCode>
&client_secret=<uriEncodedClientSecret>
&grant_type=authorization_code

一切都很好,但我不知道如何在我的标记中得到组的信息。

更新

我在两个urls中都将%20 20openid添加到我的作用域,现在我得到了一个id_token,但是我仍然没有看到“group”或“hasgroup”这两个标记。

更新

我只是将相同的清单更改(groupMembership,optionalClaims)添加到我的API注册中(而不是我的客户端)--公开范围的API,我没有看到任何变化。访问令牌和Id令牌根本没有对组的引用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-09 22:04:11

根据我的测试,它应该能用。您只需在App注册中配置groupMembershipClaimsoptionalClaims,请参阅下面的原因

您可以参考下面的测试示例,我尝试使用工作帐户或个人帐户,两者都是工作。

请求授权代码( api://3e013fde-xxxxxxa422f3/User.Test是我的API权限):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?
client_id=xxxxxxxxxxxxxxx
&response_type=code
&redirect_uri=https://localhost
&response_mode=query
&scope=openid offline_access api://3e013fde-xxxxxxa422f3/User.Test
&state=12345

请求令牌:

https://jwt.io/中解码令牌,将包含groups声明。

注:

我的客户端应用程序和API都是今天创建的,我想在old App Registration(it is not existing in the portal currently)app registration portal(it has been moved to the new App Registrations)new App Registration(the应用程序注册in portal currently)中创建的应用程序可能有一些不同。

从这个文档

在我的测试中还有一件奇怪的事情,当我创建一个新的API应用程序注册时,只需设置"groupMembershipClaims": "SecurityGroup"而不设置optionalClaims,清单将如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [],
        "saml2Token": []
    }

然后Access token将不包括groupsID tokengroups

如果我用你的设置它,Access token就会拥有groups

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [
            {
                "name": "groups",
                "source": null,
                "essential": false,
                "additionalProperties": [
                    "dns_domain_and_sam_account_name"
                ]
            }
        ],
        "saml2Token": []
    }

但当我把它设置为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [],
        "saml2Token": []
    }

Access token仍然拥有groups

从门户- Token configuration (preview)和这个doc-Configure group claims for applications with Azure Active Directory (Public Preview),这个特性应该在预览中,它可能是一个错误(我不确定)。

因此,最后,我建议您使用两个新的应用程序来尝试.。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59668164

复制
相关文章
冲突和谈判的处理原则
----------------------------------------------------------------------------
PM吃瓜
2023/03/02
1950
冲突和谈判的处理原则
0xC000005读取发生访问冲突_vs读取访问权限冲突
大家好,又见面了,我是你们的朋友全栈君。 遇见这种问题一般都是空指针,即:指针里没有赋值~
全栈程序员站长
2022/11/10
1.1K0
Symfony 服务容器:使用 XML 或 YAML 文件描述服务
本文是依赖注入(Depeendency Injection)系列教程的第 5 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
1.8K0
nginx配置Symfony
server { listen 80; server_name blog.phpfs.com; root /data/web; rewrite ^/a
苦咖啡
2018/04/28
1.7K0
Symfony是什么
众所周知前面有说到PHP的七大框架,接下来就来说说Symfony框架,希望说的对大家有所帮助。
叫我可儿呀
2019/11/26
2.1K0
Symfony是什么
Symfony 服务容器入门
本文是依赖注入(Depeendency Injection)系列教程的第 3 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
3.4K0
Symfony 3 框架+Elasticsearch
目录src/AppBundle/Controller/SearchController.php
Stanley Sun
2019/09/23
7920
C/C++ 遇到0xcccccccc访问冲突
最近一直在纠结这个问题. 最近写代码,总是遇到这个问题,一旦遇到这个问题,以前好使的代码也就不好使了。很费解,上网搜集了下资料.... 这个0xcccccccc是DEBUG模式下,编译器为没有初始化的
用户1154259
2018/01/17
1.4K0
C/C++ 遇到0xcccccccc访问冲突
Ubuntu配置Symfony环境
1、装好ubuntu使用 sudo passwd root 设置root密码 2、安装ssh sudo apt-get install openssh-server 3、ssh连接进行安装LAMP环境 启动ssh服务 /etc/init.d/ssh start 4、修改ssh连接乱码 进入系统后 sudo vim /etc/environment LANG=”zh_CN.UTF-8″ LANGUAGE=”zh_CN:zh” 修改为 LANG=”en_GB.UTF-8″ LANGUAGE=”en_US:en”
苦咖啡
2018/05/07
2K0
ExecuteReader报错,语法错误
最后,到处查找解决方案,终于在论坛见到了大神的一句:“你输入的是中文字符的空格!”
全栈程序员站长
2022/08/28
8810
ExecuteReader报错,语法错误
php使用Symfony EventDispatcher 组件
大家好,这篇文章将通过我在实际开发工作中的例子,来介绍Symfony的EventDispatcher组件的使用及实现原理。
OwenZhang
2021/12/08
2.1K0
Symfony 服务容器性能优化
本文是依赖注入(Depeendency Injection)系列教程的最后一篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
3.1K0
Symfony 服务容器性能优化
GitHub无法访问或访问缓慢解决办法
缘由 由于众所周知的原因,Github最近无法访问或访问很慢。 由于Github支持https,因此此次屏蔽Github采用的方法是dns污染,用户访问github会返回一个错误的IP 翻墙当然是一种解决办法了,但总感觉不是很爽 临时解决办法 在终端执行指令sudo vi /etc/hosts打开hosts文件进行编辑 插入如下内容,保存退出即可! # github 204.232.175.78 http://documentcloud.github.com 207.97.227.239 http://gi
xiangzhihong
2018/02/05
8.9K1
撸个 symfony4(一)
最近在看symfony,发现laravel里面也引用了这个框架,国内关于symfony的资料不是很多,但是体验了以下之后,感觉还是不错的,所以记录下踩坑之旅。这是[官方文档](https://symfony.com)
仇诺伊
2020/04/24
4530
撸个 symfony4(一)
【CSS】CSS 特性 ① ( CSS 层叠性 | 样式冲突 | 就近原则选择样式 )
如果有 两个相同类型 的 CSS 样式 作用在了 同一个 标签 上 , 那么就出现了 样式冲突 ,
韩曙亮
2023/03/30
2.2K0
【CSS】CSS 特性 ① ( CSS 层叠性 | 样式冲突 | 就近原则选择样式 )
如何在Ubuntu 18.04上使用LEMP将Symfony 4应用程序部署到生产中
Symfony是一个开源PHP框架,具有优雅的结构和声誉,无论其大小如何,都是一个适合启动任何项目的框架。作为一组可重用的组件,其灵活性,体系结构和高性能使其成为构建高度复杂的企业应用程序的首选。
小皇帝James
2018/11/15
4.8K0
Tomcat配置域名、ip访问及解决80端口冲突
1.先在tomcat下的conf下找到server.xml文件,用记事本打开后,首先对端口号进行修改,以前一直以为8080是默认的端口号,其实默认的端口号是80
sunonzj
2022/06/21
5.4K0
撸个 symfony4(二)
目标其实是完成如下的需求,如果有想看源码的,可以看下sf官网出的一个demo。
仇诺伊
2020/04/24
2.4K0
撸个 symfony4(二)
Nginx屏蔽或禁止指定来源网站访问
在nginx.conf的server配置项中加入 1.访问返回403 if ($http_referer ~* "xxx.com") { return 403; } 2.访问跳转指定网站 if ($http_referer ~* "xxx.com") { rewrite ^/ http://www.xxx.com/; } 3.禁止多域名 if ($http_referer ~* "xxx.com|aaa.com") { rewrite ^/ http://www.xxx.com/; }
Z4
2020/04/21
3.2K0
点击加载更多

相似问题

原则错误:语法错误或访问冲突: 10649

11

Symfony返回“语法错误或访问冲突”

13

Symfony DBAL插入:“语法错误或访问冲突: 1064”

10

Symfony和MySQL中的“语法错误或访问冲突: 1142”

11

语法错误或访问冲突

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文