kg1*_*123 1 azure cors typescript azure-active-directory angular
我试图在Angular 6应用程序中使用以下方法以编程方式从Azure Active Directory获取访问令牌。
let body1 = new FormData()
body1.append("resource", environment.config.clientId)
body1.append("grant_type", "client_credentials")
body1.append("client_id", environment.config.clientId)
body1.append("client_secret", "*****")
return this._http.post("https://login.microsoftonline.com/" + environment.config.tenant + "/oauth2/token", body1)
Run Code Online (Sandbox Code Playgroud)
我能够通过Postman中的此URL检索访问令牌,但是在通过我的应用程序调用它时被CORS阻止。错误如下。
Failed to load https://login.microsoftonline.com/*****/oauth2/token:
Response to preflight request doesn't pass access control check: No 'Access-
Control-Allow-Origin' header is present on the requested resource. Origin
'http://localhost:4200' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)
因此,如何在Azure Active Directory上为所有域启用CORS?
很简单,您不需要。
您正在做的是向公众公开您应用的客户秘密。请记住,该请求将通过用户的设备发出。这样他们就可以观察并捕获您的秘密。这就是令牌终结点不支持CORS且可能永远不支持的原因。
从前端JS应用程序获取令牌的方法是使用隐式授予流。或者,如果您确实需要仅应用程序的令牌,则必须从后端应用程序发出您尝试过的请求。
隐式授予流使您可以在用户登录时直接从授权端点获取令牌。您可以使用ADAL.JS / MSAL.JS进行协助。如果您的本机应用无法证明其身份,那么没有用户身份的令牌就不能拥有。
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |