私が持っている WebApi サービスからのデータを消費するXamarin クロスプラットフォームモバイル アプリケーションで認証と識別を実装しようとしています。
私の目標は次のとおりです:
モバイル アプリケーションでさまざまなID プロバイダーに対して認証を実行し、セキュリティ トークンを取得して、それを要求のヘッダー内で WebApi サービスに渡すようにします。
その後、サービスは を実装して tokenDelegatingHandler
を検証し、トークンから userId を抽出して、後で識別と承認が必要になるようにします。
クライアント コードをできるだけ共有できるようにしたいです。
私のオプションAFAIKは次のとおりです。
Azure Mobile Servicesを使用して、クライアント側でフェデレーション セキュリティ トークンを生成し、WebApi サービスでトークンを検証します。この SO answerのおかげで、それは可能だと思います。Xamarin Azure Mobile Services Componentsのおかげで、クライアント側でのコード共有は有望に見えます。
Azure Access Control Service (ACS)を使用して、クライアント側でフェデレーション セキュリティ トークンを生成し、WebApi サービスでトークンを検証します。ただし、クライアントで ACS を使用することを簡単にコード共有できるとは思いません。その上、ACS は町の新人ではありません...
Xamarin.Auth コンポーネントを使用して、ID プロバイダーに対してクライアント側の認証を直接行い、JWT セキュリティ トークンを生成し、WebApi サービスで検証します。これにより、IdP からユーザーのデータへのアクセスが増えるはずです。ただし、現時点では、このコンポーネントは Windows Phone をサポートしていないため、秋の終わりまでに利用できるようになる可能性は低いです。
誰かがこのシナリオに既に対処している場合は、あなたの経験を共有し、正しい方法を教えてください.
そもそも私の目標が間違っている場合は、それを批判することもためらわないでください.