私は現在、私のAzure ADでアカウントを作成して正しいグループに入れるためにGraph APIを使用するWeb APIを持っているプロジェクトに取り組んでいます。ベアラトークンでWeb APIを認証できません
次に、ネイティブiOSアプリケーションとangularJS Webアプリケーションから呼び出されるいくつかのAPI呼び出しが公開されています。クライアントは、自分のユーザーがまったくばかげていると確信しているので、認証を行うという奇妙な方法を作り出しました。
クライアントは、カスタムのプリペア済みiOSデバイスを特定の人に渡しています。デバイスにAzure ADユーザー(プリンシパル)とパスワードがあります。渡されたパラメータが正確に、100%ではないですが、非常に似
public async Task<string> GetTokenForUserAsync(string userPrincipalName, string password)
{
var uri = string.Format("{0}/oauth2/token", AuthString);
using (var httpClient = new HttpClient
{
DefaultRequestHeaders = { Accept = { new MediaTypeWithQualityHeaderValue("application/json") } }
})
{
var values = new Dictionary<string, string>
{
{"resource", GraphUrl },
{"client_id", ClientId },
{"client_secret", ClientSecret },
{"grant_type", "password" },
{"username", userPrincipalName },
{"password", password },
{"scope", "openid" }
};
var content = new FormUrlEncodedContent(values);
var response = await httpClient.PostAsync(uri, content);
var responseContent = await response.Content.ReadAsStringAsync();
return responseContent;
}
:それらが配られるとangularJSウェブアプリ上でいくつかのプロセスがこれを行い、アプリは、このようになります私のトークンコントローラを呼び出します
- authStringは: "https://login.microsoftonline.com/myAzureAD.onmicrosoft.com"
- GraphUrl: "https://graph.windows.net"
- ClientIdを:私のWeb APIのClientIdを(GUID)
- ClientSecret:マイWeb APIクライアントの秘密(2年間有効なアクセスキー)
この呼び出しは実際に私にaccess_tokenを提供します。私が持っている問題は、私が得るトークンが決して承認されないということです。私はいくつかのスタートアップ設定を試みましたが、何も動作していません。
は現在、私はそれは私がアズールとActive Directoryで働いて初めてです
public void ConfigureAuth(IAppBuilder app)
{
app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions
{
TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = ConfigurationManager.AppSettings["ida:ClientId"]
}
});
//app.UseWindowsAzureActiveDirectoryBearerAuthentication(
// new WindowsAzureActiveDirectoryBearerAuthenticationOptions
// {
// TokenValidationParameters = new TokenValidationParameters
// {
// ValidAudience = ConfigurationManager.AppSettings["ida:ClientId"]
// },
// Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
// });
}
私Startup.Auth.csに次のコードを持っています。だから、私は本当に愚かなことをする可能性が高い。現時点では、私はスタイリングと「正しい方法」についてあまり気にしません。私はちょうどこのことを働かせたい:/
私は自分の問題を正しく記述し、それに応じて私の質問を文書化しました。ご不明な点がございましたら、お気軽にお問い合わせください。
おかげ