UWP アプリケーションにログイン機能を追加する
Auth0.OidcClient.UWP バージョン 1.x を使用します。
前提条件
- Visual Studio 2019 (16.11+) または Visual Studio 2022 (「Universal Windows Platform Development」ワークロードがインストールされていること)
- Windows 10 SDK 10.0.16299 以降 (UWP ワークロードと一緒にインストールされます)
- Auth0 アカウント (無料でサインアップ)
はじめに
Auth0 アプリケーションを設定する
UWP アプリが接続できるように、Auth0 Dashboard で Auth0 アプリケーションを設定する必要があります。次に、コールバック URL を設定します。
- Auth0 Dashboard に移動し、ログインします
- 左側のサイドバーで Applications > Applications を開きます
- Create Application を選択します
- アプリケーションの名前を入力します (例: “My UWP App”)
- アプリケーションタイプとして Native を選択します
- Create を選択します
- Application Details ページの Settings タブを開きます
- ページ上部にある ドメイン と クライアントID を控えておきます。これらはコード内で必要です
ドメインとクライアントID の値を控えておいてください。後で必要になります
- Settings タブで下にスクロールし、Application URIs まで移動します
- Allowed Callback URLs フィールドに次を入力します:
https://{yourDomain}/mobile- 例:
https://mycompany.auth0.com/mobile
- 例:
- Allowed Logout URLs フィールドに、同じ URL
https://{yourDomain}/mobileを入力します - Save Changes を選択します
コールバック URL パターン
https://{yourDomain}/mobile は、Auth0 におけるネイティブアプリケーションの標準です。UWP アプリがリダイレクトを自動的に処理するため、追加の設定は不要です。UWP プロジェクトを作成する
すでに UWP プロジェクトがある場合は、手順 3 に進んでください。
- Visual Studio を開きます
- File > New > Project を選択します
- “UWP” を検索し、Blank App (Universal Windows) を選択します
- プロジェクトに名前を付けます (たとえば “Auth0Sample”)
- Next を選択します
- “Minimum version” で Windows 10 (version 1909) 以降を選択します
- “Target version” で、利用可能な最新バージョン (現在は Windows 11) を選択します
- Create を選択します
MainPage.xaml と MainPage.xaml.cs を含む UWP プロジェクトが作成されます。Auth0 SDK をインストールする
プロジェクトに Auth0.OidcClient.UWP NuGet パッケージを追加します。Package Manager UI を使用する方法 (推奨) :または、dotnet CLI を使用する場合:インストールがエラーなく完了したことを確認してください。エラーメッセージが表示された場合は、インターネット接続を確認して、再試行してください。
- Solution Explorer でプロジェクトを右クリックします
- Manage NuGet Packages を選択します
- Browse タブを開きます
- “Auth0.OidcClient.UWP” を検索します
- 最新バージョンを選択し、Install をクリックします
- 表示される依存関係のプロンプトを承諾します
メインページにログイン機能とログアウト機能を追加する
次に、アプリにログイン ボタンとログアウト ボタンを追加します。次に、コード内のプレースホルダーを置き換えてください。
MainPage.xaml と MainPage.xaml.cs を更新します。まず、MainPage.xaml を更新します。MainPage.xaml.cs を更新します。{yourDomain}- ご利用のAuth0ドメイン (例:mycompany.auth0.com){yourClientId}- Auth0アプリケーションのクライアントIDAuth0Sample- 実際のプロジェクト名 (UWPプロジェクト名と一致させてください)
チェックポイントこれで、UWP アプリケーションで Auth0 のログイン機能が完全に動作するようになりました。
トラブルシューティング
ログインページが開かない
ログインページが開かない
問題: ネットワーク接続に問題があるか、設定が正しくありません。解決策:
- インターネット接続を確認します
- ドメインが完全に正しいことを確認します (例:
mycompany.auth0.com) - ClientId が完全に正しいことを確認します (スペースやタイプミスがないこと)
- Windows 10 (Fall Creators Update) 以降で実行していることを確認します
コールバック URL の不一致エラー
コールバック URL の不一致エラー
問題: Auth0 アプリケーションのリダイレクト URL が、コード内の URL と一致していません。解決策:
- Auth0 Dashboard > Applications > Your App > Settings に移動します
- “Application URIs” までスクロールします
- “Allowed Callback URLs” に
https://{yourDomain}/mobileが含まれていることを確認します - これがコード内の
RedirectUriと完全に一致していることを確認します - 変更した場合は Save Changes をクリックします
ログイン後にアプリケーションがクラッシュする
ログイン後にアプリケーションがクラッシュする
問題: using ステートメントが不足しているか、名前空間の参照が正しくありません。解決策:
- MainPage.xaml.cs の先頭に
using Auth0.OidcClient;があることを確認します - ソリューションをリビルドします (Build > Rebuild Solution)
ログイン中に invalid grant エラーが発生する
ログイン中に invalid grant エラーが発生する
問題: リフレッシュトークンの有効期限が切れているか、キャッシュされた認証情報が無効です。解決策:
- Logout をタップしてキャッシュされたトークンを消去します
- もう一度 Login をタップして再認証します
- 問題が解決しない場合は、Auth0 Dashboard に移動してアプリのリフレッシュトークンを削除します
ユーザー情報が表示されない
ユーザー情報が表示されない
問題:
profile スコープがリクエストされていないため、ユーザー claims を利用できません。解決策:- profile スコープをリクエストするように Auth0ClientOptions を更新します:
- 更新後のスコープを取得するため、ログアウトしてから再度ログインします
次のステップ
保護された API を呼び出す
アクセストークンを使用して、バックエンド API へのリクエストを認証します
リフレッシュトークン
アプリの再起動後もユーザーセッションを維持します
組織
マルチテナントの B2B アプリケーションに対応します
Universal Login をカスタマイズする
Auth0 のログインページを自社のブランドに合わせます
ロールベースアクセス制御
ロールに基づいてユーザーの権限を制御します
参考資料
Auth0 OIDC Client
GitHub の SDK ソースコードとドキュメント
OpenID Connect
Auth0 における OpenID Connect の仕組みを学ぶ
アクセストークンのベストプラクティス
アクセストークンのセキュリティのベストプラクティス