oauth2.0 ADB2C中的非交互式身份验证和授权

tsm1rwdh  于 2022-12-11  发布在  DB2
关注(0)|答案(1)|浏览(163)

AD B2C是否可以用于非交互式身份验证。即我希望传入用户名(电子邮件ID)/密码,并在应用程序中进行身份验证(不是API后端,而是绕过登录流的Web应用程序-基本上是自动登录,即用户与用户/密码的交互,并重定向到资源)
我已经使用了ROPC的后端API可以利用或有任何其他方式。
我们是否可以从类似于以下内容的调用中获取访问权限和id令牌:

https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize?
client_id=<application-ID>
&nonce=anyRandomValue
&redirect_uri=https://jwt.ms
&scope=<application-ID-URI>/<scope-name>
&response_type=code

而不需要交互流并提供redirectURL。
谢谢

qoefvg9y

qoefvg9y1#

是的,您也可以对Web应用程序使用相同的流程以非交互方式获取访问和ID令牌。

我尝试在我的环境中重现相同的结果,结果如下:

我在我的B2C租户中注册了一个Web应用程序,并在**Web**平台中添加了重定向URI,如下所示:

在Manifest中,确保启用隐式流,如下所示:

我公开了一个API,并将该API权限授予WebApp,如下所示:

现在,我创建了一个资源所有者用户流如下:

我通过Postman使用以下参数成功获得了访问id令牌

POST https://b2ctenantname.b2clogin.com/b2ctenantname.onmicrosoft.com/<ROPC_policyname>/oauth2/v2.0/token
client_id:<App_ID>
redirect_uri: https://jwt.ms
grant_type:password
username: <UPN_of_B2C user> 
password:xxxxxxxxxxxx
scope:openid https://b2ctenantname.onmicrosoft.com/appID/Custom.Scope
response_type:token id_token

回应:


指令集
当我解码上面的访问令牌时,我成功地获得了**scp**声明,自定义范围如下:

相关问题