Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ブラウザ拡張機能: SAML認証対応 #616

Merged
merged 8 commits into from
Aug 26, 2024
Merged

Conversation

wadabee
Copy link
Contributor

@wadabee wadabee commented Aug 23, 2024

Issue #, if available:

Description of changes:

ブラウザ拡張機能をSAML認証に対応しました。

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Comment on lines +7 to +20
const { settings } = useSettings();

const { data: session, mutate } = useSWR(settings ? 'auth' : null, () => {
return fetchAuthSession();
});

const loading = useMemo(() => {
return !settings || !session;
}, [session, settings]);

return {
hasAuthrized: !!session?.tokens,
authenticate: mutate,
loading,
hasAuthenticated: !!session?.tokens,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amplify UIで認証に関する処理を行うuseAuthenticatorというHooksがありますが、以下の理由で利用していません。

  • 今回認証に関する設定(useSettings)を非同期に取得しているが、設定の取得完了を待たずに、useAuthenticatorが認証ステータスを取得しにいくため、正確なステータスが取得できない
  • 設定の取得完了のタイミングで、認証ステータスを更新したいが、useAuthenticatorに任意のタイミングで認証ステータスを取得する関数がない
    • 今回、SWRのmutateを利用して、任意のタイミングで認証セッションを取得し、その中身で認証状態を判断するようなロジックとしている

Comment on lines +1 to +15
<!doctype html>
<html lang="ja">

<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
</head>

<body style="background-color: #232f3e">
<div id="root"></div>
<script src="./index.tsx" type="module"></script>
</body>

</html>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SAML認証を行う際は、CognitoのHosted UIからコールバックさせる必要があるので、新しいタブで認証画面を開くようにしています。
iframeに埋め込まれた状態だと、親画面のURLにコールバックすることになり、Cognito 側でブロックされます。

Copy link
Contributor

@tbrand tbrand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

動作確認取れました!LGTM!

@tbrand tbrand merged commit 26ee4cf into main Aug 26, 2024
3 checks passed
@tbrand tbrand deleted the feat/extension-saml branch August 26, 2024 01:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants