メールとパスワードを含むデータベースと、それらのユーザーがメールとパスワードを提供することでアプリにログインできるようにする Flutter アプリがあります (昔ながらの方法)。
現在、これらのユーザーの一部は、Microsoft/Office 365 アカウントを使用してサインインする別の Web サイトを持つ組織の一部です。組織の Web サイトで通常使用するものとは異なるパスワードをアプリで覚えて入力する必要があります。
そこで、Microsoft Azure をバックエンドとして使用している彼らの Web サイトを見てきました。現在のログイン ページから、、、および を見つけることがtenantID
できましclientID
た。これにより、認証エンドポイントから認証コードを取得できます。ただし、私のアプリは組織の Azure アカウントに登録されていないため、 を持っていないため、トークン エンドポイントを呼び出して を取得できません。redirectURL
scope
login.microsoftonline.com
clientSecret
idToken
WebView を使用して組織の Web サイトへのログインを表示しているので、リダイレクトされたときにリダイレクト URL から認証コードを取得できます。
私の質問は、認証コードを直接使用して、ユーザーが Office 365 アカウントを使用して正常にサインインしたことを確認できるかどうかです。私が知る必要があるのは、ユーザーが組織にアカウントを持っていることと、ログインするための有効な電子メールとパスワードを提供できることだけです。
認証コードを含むリダイレクト URL にリダイレクトされた場合は、ログインに成功したことを意味します。Office 365 認証エンドポイントに提供された電子メールに基づいて、アプリにもログインしていると見なすことができます。Office 365 にログインできなければ、認証コードを取得できないからですよね?