0

シナリオ: 私はAzureでサービスをホストしています。このサービスは質問データベースをホストします。私は自分のアンドロイドアプリに、委任された認証ではなくウェブアプリケーション認証を使用して、サービスからデータを取得します。基本的に私はユーザーにサインインしたくありません。Androidを使用したAzure ADのWebアプリケーション認証ADAL

Research: 私はたくさんの検索を行いましたが、acquiretokenの亜種はそれを動作させるためにクライアントの秘密を取りません。 .NETでは、ClientCredentialsを使用して同じことを行うことができます。 SOに尋ねられる最も近い質問はAuthenticate the user on Azure AD using ADAL library from Android native appです。

答えは具体的にどのように達成するかを示していません。

答えて

1

携帯電話やその他のAndroidデバイスのアプリケーションは、public client applications(ネイティブクライアントアプリケーション)です。 noted in the specificationとして、クライアント認証方法はパブリッククライアントには許可されていません。

パブリッククライアントは、コードが存在し実行される性質上、クライアントの秘密を保持できないため、クライアントIDを真にAADに認証することもできません。たとえば、あなたのアプリケーションを実行しているネイティブのクライアントデバイスのWebトラフィックを盗んで、独自のコードで複製して、あなたのアプリを模倣することができます。したがって、委任された認証のように、より厳密な認証方法しか使用できません。

2つのサービス間でサービスコール(アプリケーションのみの呼び出し)を行う必要がある場合は、両方を機密クライアントにする必要があります。技術的には、Android AppをWeb App IDとClient Secretを登録して機密クライアントであるかのように動作させることができますが、私たちの図書館はそれを手助けしません。ルートに戻り、トークンを取得するためにHTTP呼び出しを行う必要があります。

+0

私はADALが提供していないと理解します。しかし、Dot Netにはそれがあり、そのメカニズムはネイティブクライアントにも使用できるので、アンドロイドクライアントにとって同じ機能を持ち、必要に応じて開発者に使用するかどうかの決定を下すことはできません。 –

+0

あなたは私の投稿を完全に理解していないと思います。 OAuthはそれを許可しません。期間。あなたは間違った情報をOAuthに間違えて登録することができますが、間違いを犯すのはあなた次第です。私たちの図書館では、OAuthがサポートしていることしかできません。仕様からの –

+0

;認可サーバー**は、公開クライアントとのクライアント認証方法を確立することができる(MAY **)。 IMHO私はあなたのポストをよく理解しました。私の答えは何も書かれていませんでした。問題は、AdalがDot Netで同じ機能を提供するのか、なぜAndroid用でないのかということです。 Oauth自身もそれを許していません。それはお勧めしないかもしれませんが、それを禁じません。 –

関連する問題