From d5835e4e93e359e33ade3f2ba667bd6e4c803aca Mon Sep 17 00:00:00 2001 From: simeng-li Date: Thu, 17 Aug 2023 10:46:14 +0800 Subject: [PATCH] feat(console): add m2m implementation guide (#4343) * feat(console): add m2m implementation guide add m2m implementation guide * fix(console): address m2m guide comment issues address m2m guide comment issues --- .../assets/docs/guides/m2m-general/README.mdx | 115 +++++++++++++++++- .../m2m-general/assets/api-identifier.png | Bin 0 -> 23279 bytes .../assets/enable-admin-access.png | Bin 0 -> 50512 bytes .../components/EnableAdminAccess.tsx | 41 +++++++ .../ApplicationCredentials/index.module.scss | 9 ++ .../ApplicationCredentials/index.tsx | 51 ++++++++ .../components/Guide/GuideModal.tsx | 4 +- .../Applications/components/GuideV2/index.tsx | 8 +- 8 files changed, 221 insertions(+), 7 deletions(-) create mode 100644 packages/console/src/assets/docs/guides/m2m-general/assets/api-identifier.png create mode 100644 packages/console/src/assets/docs/guides/m2m-general/assets/enable-admin-access.png create mode 100644 packages/console/src/assets/docs/guides/m2m-general/components/EnableAdminAccess.tsx create mode 100644 packages/console/src/mdx-components-v2/ApplicationCredentials/index.module.scss create mode 100644 packages/console/src/mdx-components-v2/ApplicationCredentials/index.tsx diff --git a/packages/console/src/assets/docs/guides/m2m-general/README.mdx b/packages/console/src/assets/docs/guides/m2m-general/README.mdx index ae759f749..911259fa6 100644 --- a/packages/console/src/assets/docs/guides/m2m-general/README.mdx +++ b/packages/console/src/assets/docs/guides/m2m-general/README.mdx @@ -1 +1,114 @@ -## Replace this with actual guide \ No newline at end of file +import InlineNotification from '@/ds-components/InlineNotification'; +import Steps from '@/mdx-components-v2/Steps'; +import Step from '@/mdx-components-v2/Step'; +import ApplicationCredentials from '@/mdx-components-v2/ApplicationCredentials'; +import EnableAdminAccess from './components/EnableAdminAccess'; +import EnableAdminAccessSrc from './assets/enable-admin-access.png'; +import AppIdentifierSrc from './assets/api-identifier.png'; + + + +Machine-to-machine (M2M) is a common practice to authenticate if you have an app that needs to directly talks to resources. E.g., an API service that updates users' custom data in Logto, a statistic service that pulls daily orders, etc. + +Usually, an M2M app doesn't need user interactions, i.e., it has no UI. + + + +Get your App ID and App Secret. + + + + + + +### Accessing Logto Management API + +If you want to use this m2m app for accessing Logto [Management API](https://docs.logto.io/docs/references/core/#management-api), you will also need to turn on "admin access" for you application. + + + + + + +### Find the API identifier + +In the API Resource tab, find the API identifier that the app needs to access. If you haven't added the API Resource in Logto or don't know what API Resource is, see [API Resource](https://docs.logto.io/docs/references/resources). + +API identifier + + + + +### Compose them into a request (all mandatory): + +
    +
  • + Use Token Endpoint {`${props.endpoint}/oidc/token`} as the request endpoint, and + use POST as the method. +
  • +
  • + Set header Content-Type: application/x-www-form-urlencoded +
  • +
  • + Use{' '} + + Basic authentication + + , where username is the App ID, and password is the App Secret. +
  • +
  • Carry the body data
  • +
+ +```jsonc +{ + "grant_type": "client_credentials", + "resource": "https://shopping.api", // Replace with your API identifier + "scope": "scope_1 scope_2" // Replace with your desired scope(s) if you're using RBAC +} +``` + +If you are using cURL: + +
+  
+    {`curl --location
+  --request POST '${props.endpoint}/oidc/token'
+  --header 'Authorization: Basic eW91ci1hcHAtaWQ6eW91ci1hcHAtc2VjcmV0'
+  --header 'Content-Type: application/x-www-form-urlencoded'
+  --data-urlencode 'grant_type=client_credentials'
+  --data-urlencode 'resource=https://shopping.api'
+  --data-urlencode 'scope=scope_1 scope_2'
+`}
+  
+
+ +### Token response + +A successful response body would be like: + +```jsonc +{ + "access_token": "eyJhbG...2g", // Use this token for accessing the resource + "expires_in": 3600, // Token expiration in seconds + "token_type": "Bearer" // Auth type for your request when using the Access Token +} +``` + +
+ + +You may notice the token response has a `token_type` field, which it's fixed to `Bearer`. Thus you should put the Access Token in the Authorization field of HTTP headers with the Bearer format (`Bearer YOUR_TOKEN`). + +For example, if you have requested an Access Token with the resource `https://api.logto.io`, to get all applications in Logto: + +
+  
+    {`curl --location
+  --request GET '${props.endpoint}/api/applications'
+  --header 'Authorization: Bearer eyJhbG...2g' # Access Token
+`}
+  
+
+ +
+
diff --git a/packages/console/src/assets/docs/guides/m2m-general/assets/api-identifier.png b/packages/console/src/assets/docs/guides/m2m-general/assets/api-identifier.png new file mode 100644 index 0000000000000000000000000000000000000000..d15685f54ad786eef202830385a8bf7f824bab2d GIT binary patch literal 23279 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 z/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 U$k!pL|0wwBXc)j>s5wOb50N4L_y7O^ literal 0 HcmV?d00001 diff --git a/packages/console/src/assets/docs/guides/m2m-general/assets/enable-admin-access.png b/packages/console/src/assets/docs/guides/m2m-general/assets/enable-admin-access.png new file mode 100644 index 0000000000000000000000000000000000000000..2efb1c6726c36987c15e09d21e09f84f27f5ff99 GIT binary patch literal 50512 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 g|6eyu_&G*B8C~E*p{f { + setValue(value); + try { + await api.patch(`api/applications/${appId}`, { + json: { + isAdmin: value, + }, + }); + toast.success(t('general.saved')); + } catch { + setValue(!value); + } + }; + + return ( + + onSubmit(checked)} + /> + + ); +} diff --git a/packages/console/src/mdx-components-v2/ApplicationCredentials/index.module.scss b/packages/console/src/mdx-components-v2/ApplicationCredentials/index.module.scss new file mode 100644 index 000000000..dc3cd7791 --- /dev/null +++ b/packages/console/src/mdx-components-v2/ApplicationCredentials/index.module.scss @@ -0,0 +1,9 @@ +@use '@/scss/underscore' as _; + +.textField { + @include _.form-text-field; +} + +.container { + padding: _.unit(6) 0; +} diff --git a/packages/console/src/mdx-components-v2/ApplicationCredentials/index.tsx b/packages/console/src/mdx-components-v2/ApplicationCredentials/index.tsx new file mode 100644 index 000000000..47963de77 --- /dev/null +++ b/packages/console/src/mdx-components-v2/ApplicationCredentials/index.tsx @@ -0,0 +1,51 @@ +import { useContext } from 'react'; +import { Trans, useTranslation } from 'react-i18next'; + +import CopyToClipboard from '@/ds-components/CopyToClipboard'; +import FormField from '@/ds-components/FormField'; +import TextLink from '@/ds-components/TextLink'; +import { GuideContext } from '@/pages/Applications/components/GuideV2'; + +import * as styles from './index.module.scss'; + +function ApplicationCredentials() { + const { + app: { id, secret }, + } = useContext(GuideContext); + const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); + + return ( +
+ ( + + ), + }} + > + {t('application_details.application_id_tip')} + + )} + > + + + + + +
+ ); +} + +export default ApplicationCredentials; diff --git a/packages/console/src/pages/Applications/components/Guide/GuideModal.tsx b/packages/console/src/pages/Applications/components/Guide/GuideModal.tsx index 50337345c..7598ad1d5 100644 --- a/packages/console/src/pages/Applications/components/Guide/GuideModal.tsx +++ b/packages/console/src/pages/Applications/components/Guide/GuideModal.tsx @@ -1,4 +1,4 @@ -import type { Application } from '@logto/schemas'; +import type { ApplicationResponse } from '@logto/schemas'; import Modal from 'react-modal'; import * as modalStyles from '@/scss/modal.module.scss'; @@ -7,7 +7,7 @@ import GuideV2 from '../GuideV2'; type Props = { guideId: string; - app?: Application; + app?: ApplicationResponse; onClose: (id: string) => void; }; diff --git a/packages/console/src/pages/Applications/components/GuideV2/index.tsx b/packages/console/src/pages/Applications/components/GuideV2/index.tsx index c4fe35064..949105574 100644 --- a/packages/console/src/pages/Applications/components/GuideV2/index.tsx +++ b/packages/console/src/pages/Applications/components/GuideV2/index.tsx @@ -1,4 +1,4 @@ -import { DomainStatus, type Application } from '@logto/schemas'; +import { DomainStatus, type ApplicationResponse } from '@logto/schemas'; import { MDXProvider } from '@mdx-js/react'; import { conditional } from '@silverhand/essentials'; import { @@ -27,7 +27,7 @@ import * as styles from './index.module.scss'; type GuideContextType = { metadata: Readonly; Logo?: LazyExoticComponent; - app: Application; + app: ApplicationResponse; endpoint: string; alternativeEndpoint?: string; redirectUris: string[]; @@ -45,7 +45,7 @@ export const GuideContext = createContext({ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, no-restricted-syntax metadata: {} as GuideMetadata, // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, no-restricted-syntax - app: {} as Application, + app: {} as ApplicationResponse, endpoint: '', redirectUris: [], postLogoutRedirectUris: [], @@ -55,7 +55,7 @@ export const GuideContext = createContext({ type Props = { guideId: string; - app?: Application; + app?: ApplicationResponse; isCompact?: boolean; onClose: () => void; };