我在 AAD 中注册了我的 secret 客户端和资源客户端。 secret 客户端具有访问资源客户端的API权限。 使用我的凭据从 secret 客户端登录后,如何向资源客户端发出请求?
基于 ms docs
例如,如果您的 Web API 的应用程序 ID URI 是 https://contoso.com/api并且您的范围名称是Employees.Read.All,完整范围是: https://contoso.com/api/Employees.Read.All
这个例子不足以让我理解访问 token 在哪里?
最佳答案
您可以使用auth code flow获取访问 token 。
首先,通过浏览器中的网址获取代码
。在此步骤中您需要登录。
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id={your-client-id}
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=https://contoso.com/api/Employees.Read.All
&state=12345
然后,通过代码获取access_token。
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
client_id={your-client-id}
&scope=https://contoso.com/api/Employees.Read.All
&code={the code from the previous step}
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret={your-client-secret}
<小时/>
关于隐式授权流程:
此流程通常用于单页应用程序,隐式授权比其他授权带来更多风险。请检查隐式授权是否适合您的应用程序,请参阅 here 。如果没有,我仍然建议您使用验证码流程。
注意:要使其正常工作,您需要首先在门户中的“隐式授予”部分下选择访问 token ,然后导航到“应用程序注册”->“您的应用程序”->“身份验证”。
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id={your-client-id}
&response_type=token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=https://contoso.com/api/Employees.Read.All
&response_mode=fragment
&state=12345
&nonce=678910
&prompt=none
关于azure - 如何使用或访问Azure AD公开的API(MyApis)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63699207/