2017-02-03 9 views
0

私は次の文脈でプロトタイプを構築しています。証明書利用者としてADFS + IdentityServer3 + Mobile + MVC

  • 2つのクライアントアプリケーション(MVC &モバイル)
  • IdentityServer3をSAMLのサポートを提供するために、
  • アイデンティティプロバイダとしてADFS 3.0
  • IdentityServer3.WsFederationプラグイン

MVCモバイル側にアプローチする方法がわかりません。

以前の試みでは、Web APIとADFSの "adfs/services/trust/13/usernamemixed"エンドポイントを使用しました。これにより、モバイルデバイスはAPIに資格情報を送信し、ADFSのエンドポイントを使用してユーザーを認証しました。その後、JWTトークンがモバイルアプリに返されました。

私たちはIdpからSAMLトークンを受け取る必要があります(ADFSでも別のIdpでもかまいません)。しかし、私たちのアプリケーションはトークンの種類には無関心です。

私は2つの質問があります。

  1. IdentityServer3は、上記のエンドポイントを使用してws trustをサポートしていません(私の知る限り)。したがって、モバイルデバイスログインの場合の正しい方法は何ですか?
  2. IdentityServer3がクライアントアプリケーション用のSAMLトークンのJWTへの変換を処理する可能性があるため、WsFederationプラグインが必要ですか?
+0

SAMLトークンが必要な場合は、どのようにあなたは不自然ですか? –

+0

JWTトークンまたはSAMLトークンを使用できます。 – user1424660

答えて

0

まずSAMLはブラウザとしてクライアントを想定しているため、モバイルデバイス(特にネイティブアプリ)用のSAMLはおすすめしません。モバイルアプリでは、認証するためのブラウザを開き、それは私が感じる最良の方法ではありません。私は、モバイルデバイス用にOpenID/Oauthを使用することをお勧めします。

Idpは、WS-Fed、SAML 2.0、OAuthなどの複数のサインインプロトコルをサポートできます。関連するプロトコルを使用するクライアントに依存します。

WSに来る - IdentityServer3と一緒に、それを達成するのに役立つOWINミドルウェアがあります。

using Microsoft.Owin.Security.WsFederation; 

     app.UseWsFederationAuthentication(
        new WsFederationAuthenticationOptions 
         { 
          Wtrealm = "https://localhost:44309/core", //identityserver3 
          Wreply = "replyaddress", 
          MetadataAddress = "https://localhost/federationmetadata.xml", 
          AuthenticationType = "adfs", 
          Caption = "ADFS", 
          SignInAsAuthenticationType = "sometype" 
         }); 

上記のコードは、あなたが戻って上記Wreplyアドレスにリダイレクトされます成功した認証の後、ADFSのログイン画面が表示されます、それはSAML 1.1の応答をretuns。それを解析して使用する必要があります。

関連する問題