2017-05-26 10 views
0

こんにちは私はAzure ADを使用してユーザーを認証するコードバアプリケーションを作成しています。 私はAzureの外にwebservice/apiを持っています。これは、アプリケーションが表示するコンテンツを取得する場所です。Azure ADログインapp +遠隔webservice/aziアジュアの外側

Webサービスへのアクセスを許可する前に、Azure ADログインユーザーを確認したいと思います。

これまでのところ私のアプリでAzure ADを使用しているユーザを認証しています。ユーザが認証されていれば、私のアプリはWebサービスにデータを要求します。 しかし、Azure ADでアクティブなログインを持っているユーザーだけが、Webサービスからデータを取得できることを確認したいと思います。

だから、右のURLを知っていれば誰でも私のWebサービスにアクセスできます。 Webサービスを保護するにはどうすればよいですか?

ユーザーアクセストークンが有効であるかどうかを確認できるどこのエンドポイントもありますか?

答えて

1

Azure ADには、トークン検証用のエンドポイント(別名トークンイントロスペクションエンドポイント)がありません。

通常、テキストブックのシナリオはhaving a Web API validate an Azure AD issued access tokenです。トークンの検証を行い、ライブラリを使用して[好ましい]

  • このシナリオのためのAzureのADでフォローするアプローチがあるさは、Web APIをすることによって達成することができるトークン自体を検証しています。

  • トークンの検証を自分で実装する。これは非常にエラーが発生しやすく、危険なアプローチであることに注意してください。

ASP.NetとNode.jsには、最初のアプローチをさらに容易にするライブラリがあります。またthe official sampleから得られるのNode.jsについて

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
    new WindowsAzureActiveDirectoryBearerAuthenticationOptions 
    { 
     Audience = clientID, 
     Tenant = tenant 
    }); 

var passport = require('passport'); 
var BearerStrategy = require('passport-azure-ad').BearerStrategy; 

var options = { 
// The URL of the metadata document for your app. We will put the keys for token validation from the URL found in the jwks_uri tag of the in the metadata. 
    identityMetadata: config.creds.identityMetadata, 
    clientID: config.creds.clientID, 
    audience: config.creds.audience 
}; 

var bearerStrategy = new BearerStrategy(options, 
    function(token, done) { 
    // Post-validation code 
    } 
); 

passport.use(bearerStrategy); 
the official sampleから得ASP.Net
について

関連する問題