获取 Azure AD V2 端点的访问令牌时如何指定资源 URI?
How to specify Resource URI when acquiring access token for Azure AD V2 endpoint?
我在之前的项目中使用了 ADAL.js,该项目仅支持工作帐户,并且能够成功获取 idtokens,然后访问 API(ResourceURI:“https://myresource.com”) .工作正常。
现在,我正在尝试将 MSAL.js 用于另一个项目,因为我需要同时支持工作帐户 (aad auth) 和 个人 "Microsoft Accounts" (海事局)。我 运行 现在遇到了问题,试图做与我的 ADAL 项目中相同的事情。
"Resource" 的概念似乎已从 AAD V2 中消失。那么在获取目标 API 的访问令牌时如何指定资源 url 呢?因此生成的 accesstoken 包含 AUD 声明中的 ResourceURI(这将由我调用的 API 强制执行)。
如果我强制添加 Resource querystring 参数,则:
msalapp.acquireTokenSilent([], null, null, "resource=https%3A%2F%2Fmyresource.com")
我收到以下错误:
AADSTS901002: The 'resource' request parameter is not supported.
文档说要改用 SCOPE。但是使用:
msalapp.acquireTokenSilent(['https://myresource.com'])
结果:
AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope https://myresource.com openid profile is not valid. The scope format is invalid. Scope must be in a valid URI form <https://example/scope> or a valid Guid <guid/scope>..
因此:在通过 MSAL.js 使用 v2 端点时获取访问令牌时如何指定资源 URI? 抱歉(通常非常好)MSDN在这种情况下,文章根本没有用...
在 Azure AD v2.0 中,您需要使用作用域,而不是资源。
如果您有资源,并且想获得所有权限的令牌,您可以使用:
https://myresource.com/.default
.
您也可以更细粒度:更多信息可从 https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/Adal-to-Msal#scopes-for-a-v10-application 获得(这是在 C# 中,但翻译很简单)
我在之前的项目中使用了 ADAL.js,该项目仅支持工作帐户,并且能够成功获取 idtokens,然后访问 API(ResourceURI:“https://myresource.com”) .工作正常。
现在,我正在尝试将 MSAL.js 用于另一个项目,因为我需要同时支持工作帐户 (aad auth) 和 个人 "Microsoft Accounts" (海事局)。我 运行 现在遇到了问题,试图做与我的 ADAL 项目中相同的事情。
"Resource" 的概念似乎已从 AAD V2 中消失。那么在获取目标 API 的访问令牌时如何指定资源 url 呢?因此生成的 accesstoken 包含 AUD 声明中的 ResourceURI(这将由我调用的 API 强制执行)。
如果我强制添加 Resource querystring 参数,则:
msalapp.acquireTokenSilent([], null, null, "resource=https%3A%2F%2Fmyresource.com")
我收到以下错误:
AADSTS901002: The 'resource' request parameter is not supported.
文档说要改用 SCOPE。但是使用:
msalapp.acquireTokenSilent(['https://myresource.com'])
结果:
AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope https://myresource.com openid profile is not valid. The scope format is invalid. Scope must be in a valid URI form <https://example/scope> or a valid Guid <guid/scope>..
因此:在通过 MSAL.js 使用 v2 端点时获取访问令牌时如何指定资源 URI? 抱歉(通常非常好)MSDN在这种情况下,文章根本没有用...
在 Azure AD v2.0 中,您需要使用作用域,而不是资源。
如果您有资源,并且想获得所有权限的令牌,您可以使用:
https://myresource.com/.default
.
您也可以更细粒度:更多信息可从 https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/Adal-to-Msal#scopes-for-a-v10-application 获得(这是在 C# 中,但翻译很简单)