Beskrivning
I "EFI-piloten" avser vi hitta pilotaktörer som är villiga att delta med sina system för att genomföra pilotverksamhet avseende dessa system för anslutning mot NLL. Då det finns risker kring att hitta pilotaktörer samt då dessa piloter kan genomföras har tanken på ett "torrsim" i EFI-piloten väckts. Detta torrsim är inte möjlig eller rimlig att "ta i produktion" i ett senare skede - det är alltså snarare en POC än en pilot. Detta torrsim (hädanefter POC) utgår inte från en befintlig aktör med förutsättningar för att delta i piloten, utan samtliga delar som ingår byggs för POCen.
Målet är att i POC simulera det som behövs för att ett it-system ("klient") i organisation A ska kunna göra ett API-anrop till ett API i organisation B enligt de mönster "delegerad åtkomst" och med de standarder för digital samverkan och federativ infrastruktur som beskrivs inom Ena.
POC implementerar 2.1 enligt inter-domain-calls.md och SSO enligt authn-authz-patterns.md. Tanken är att kunna utöka POC i ett andra steg till att implementera 2.2 (inter-domain-calls) och eventuellt växling av SAML-intyg (authn-authz-patterns).
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUyOTk3NDIiLCJkaWFncmFtTmFtZSI6InBvYzEiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiUE9DIChcInRvcnJzaW1cIikiLCJ0YnN0eWxlIjoiaW5saW5lIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjpmYWxzZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozMDUyOTk3NDAsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjMwNTI5OTc0MCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImRpc2FibGVwbGFjZWhvbGRlcnMiOiIxIiwiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoxLCJtYWNyb0lkIjoiZGM0YTk0MGItNjNiNS00MjMwLWE5NTktMGMxY2QyODRhYzlkIiwicHJldmlld05hbWUiOiJwb2MxLnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiI1NjEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
För att åstadkomma API-anrop mellan System och API behöver ett vissa förutsättningar finnas och inledande steg genomföras, dessa beskrivs nedan.
Användaren loggar in i System. Detta sker genom en legitimationstjänst (SAML-IDP) och resulterar i att användaren har en inloggningssession i System.
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUyOTk3NDciLCJkaWFncmFtTmFtZSI6InBvYzIiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiUE9DIChcInRvcnJzaW1cIikiLCJ0YnN0eWxlIjoiaW5saW5lIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjpmYWxzZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozMDUyOTk3NDAsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjMwNTI5OTc0MCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImRpc2FibGVwbGFjZWhvbGRlcnMiOiIxIiwiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoxLCJtYWNyb0lkIjoiNTViODEwYTYtZGU4Ny00ODJmLWEwNzEtMDZlMWVjMTgxYjY2IiwicHJldmlld05hbWUiOiJwb2MyLnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiI1NjEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
System består av två komponenter, dels en Webbapplikation (Quarkus) och dels en Keycloak-instans som agerar SAML-SP mot SAML-IDP. Webbapp använder Oauth authorization code-flow mot Keycloak.
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUyOTk3NTIiLCJkaWFncmFtTmFtZSI6InBvYzMiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiUE9DIChcInRvcnJzaW1cIikiLCJ0YnN0eWxlIjoiaW5saW5lIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjpmYWxzZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozMDUyOTk3NDAsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjMwNTI5OTc0MCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImRpc2FibGVwbGFjZWhvbGRlcnMiOiIxIiwiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoyLCJtYWNyb0lkIjoiNTY5YzYyMDAtZDc4My00MWU0LTljNDQtM2YzM2Q0ZWQ3ZWQ2IiwicHJldmlld05hbWUiOiJwb2MzLnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiI0NzEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
- Användaren riktar sin browser mot URL för Webbapp. Webbapp konstaterar att användaren inte är inloggad (avsaknad av session-cookie).
- Webbapp startar OAuth Authentication code flow mot Keycloak (delkomponent i System) som vidarebefodrar (via redirect, alltså via Användare, visas ej i diagram) användaren mot login-sida som också tillhandahålls av Keycloak.
- Keycloak (i egenskap av SAML-SP) initierar SAML AuthnRequest mot SAML-IDP. Detta sker också genom redirect via Användare som är den som egentligen utför AuthnRequest mot IDP (syns ej i diagram). Slutresultatet är att Användare blir presenterad med inloggningssida hos SAML IDP.
- Användare autentiserar sig (i denna implementation genom username/password snarare än e-legitimation, av praktiska skäl).
- Efter autentisering returneras resultat i form av SAML Response till Keycloak/SP. Detta sker också via Användare (syns ej i diagram). Keycloak sparar tills vidare Response.
- Keycloak slutför code flow genom att returnera Authz code och Webbapp använder denna mot token-endpoint (syns ej i diagram). Keycloak tillverkar och returnerar Access token till Webbapp och upprättar inloggningsession för användaren.
Steg 2 - Interaktion med lokal auktorisationstjänst och SSO mot IDP
Någon gång efter inloggning utför användaren något i System som föranleder att API-anrop mot API (i organisation B) behöver utföras. För att göra detta behöver först ett underlag genereras (som kan användas i steg 3 för att begära åtkomstintyg). Detta underlag (signerad JWT) skapas genom att System utför begäran mot lokal auktorisationstjänst (AS-A) som får en uppfattning om användaren genom ett SSO-flöde till SAML-IDP.
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUyOTk3NTciLCJkaWFncmFtTmFtZSI6InBvYzQiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiUE9DIChcInRvcnJzaW1cIikiLCJ0YnN0eWxlIjoiaW5saW5lIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjpmYWxzZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozMDUyOTk3NDAsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjMwNTI5OTc0MCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImRpc2FibGVwbGFjZWhvbGRlcnMiOiIxIiwiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoxLCJtYWNyb0lkIjoiNTA5ZDcyODgtZmNmZC00YTU3LWJhNGQtMDIwZGUzZjllZGUzIiwicHJldmlld05hbWUiOiJwb2M0LnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiI1NjEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
Detaljerad beskrivning av interaktion med AS-A.
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUyOTk3NjIiLCJkaWFncmFtTmFtZSI6InBvYzUiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiUE9DIChcInRvcnJzaW1cIikiLCJ0YnN0eWxlIjoiaW5saW5lIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjpmYWxzZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozMDUyOTk3NDAsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjMwNTI5OTc0MCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImRpc2FibGVwbGFjZWhvbGRlcnMiOiIxIiwiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoyLCJtYWNyb0lkIjoiYjI5YWQ0OGUtNGNiYS00OTI2LTkzYWMtMTU5Y2FmNWM4MDVhIiwicHJldmlld05hbWUiOiJwb2M1LnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiI0NzEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
- Användare (inloggad) utför något i System som föranleder API-anrop till API i organisation B (trycker på en knapp/länk). Detta kan ske direkt efter inloggning eller efter att en viss tid passerat.
- System startar OAuth Authentication code flow mot AS-A (en instans av Keycloak) och anger scope ("refapi") som gäller för kommande (i steg 3) API-anrop. AS-A som tar emot anropet vidarebefodrar (via redirect, alltså via Användare, visas ej i diagram) användaren mot login-sidan som också tillhandahålls av AS-A.
- Keycloak (i egenskap av SAML-SP) initierar SAML AuthnRequest mot SAML-IDP. Detta sker också genom redirect via Användare som är den som egentligen utför AuthnRequest mot IDP (syns ej i diagram). Slutresultatet är att Användare blir presenterad med inloggningssida hos SAML IDP.
- Användare autentiserar sig (i denna implementation genom username/password snarare än e-legitimation, av praktiska skäl.
- Efter autentisering returneras resultat i form av SAML Response till AS-A (SP). Detta sker också via Användare (syns ej i diagram). Keycloak sparar tills vidare Response.
- AS-A slutför code flow genom att returnera Authz code och Webbapp denna mot token-endpoint (syns ej i diagram). AS-A har nu en session avseende Användare. AS-A tillverkar och signerar JWT (user_JWT). Refresh_token tillverkas också vars giltighetstid speglar den tid
- Keycloak returnerar user_JWT samt refresh_token till System.
User_JWT har en giltighetstid som är relativt kort (xx minuter). Refresh_token har en giltighetstid som speglar hur länge förnyelse kan göras. Om förnyelse av user_JWT behöver göras medans giltighet för refreshtoken finns:
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUzMDAyMjMiLCJkaWFncmFtTmFtZSI6InBvYzNiIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6IlBPQyAoXCJ0b3Jyc2ltXCIpIiwidGJzdHlsZSI6ImlubGluZSIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6ZmFsc2UsIm1heFNjYWxlIjoiMSIsIm93bmluZ1BhZ2VJZCI6MzA1Mjk5NzQwLCJlZGl0YWJsZSI6ZmFsc2UsImNlb0lkIjozMDUyOTk3NDAsInBhZ2VJZCI6IiIsImxib3giOnRydWUsInNlcnZlckNvbmZpZyI6eyJkaXNhYmxlcGxhY2Vob2xkZXJzIjoiMSIsImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MSwibWFjcm9JZCI6IjUxMzU3OTc2LTM0ZmEtNDE2Yy05ZWFkLTEwMWZlNzdhODc5NyIsInByZXZpZXdOYW1lIjoicG9jM2IucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6IjQ3MSIsInNpbXBsZVZpZXdlciI6ZmFsc2UsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
- (Eventuellt) Användare utför åtgärd som kräver giltig user_JWT. Detta kan lika gärna vara något som initieras från internt i System. System upptäcker att giltighet user_JWT har passerats.
- System initierar token fresh mot AS-A
- AS-A tillverkar ny user_JWT och signerar denna
- AS-A returnerar user_JWT
Om refresh inte är möjlig (giltighet passerad), återgår man till det initiala flödet med code flow mot AS-A för att ny autentisering av användaren ska kunna ske mot SAML IDP.
Steg 3 - Begäran av åtkomstintyg från organisation B
När underlag finns kan åtkomstbegäran göras mot auktorisationstjänst (AS-B) i organisation B. AS-B använder metadata (som får via Resolver/Batch) för att verifiera underlag och klient som för förfrågan (System). Resultatet är ett åtkomstintyg (access token) som returneras till System.
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUyOTk3NjciLCJkaWFncmFtTmFtZSI6InBvYzYiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiUE9DIChcInRvcnJzaW1cIikiLCJ0YnN0eWxlIjoiaW5saW5lIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjpmYWxzZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozMDUyOTk3NDAsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjMwNTI5OTc0MCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImRpc2FibGVwbGFjZWhvbGRlcnMiOiIxIiwiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoxLCJtYWNyb0lkIjoiNWZiY2I3OGItMmIzYi00ZTQxLWFhYWYtNDJhYzNhOTVhMjUzIiwicHJldmlld05hbWUiOiJwb2M2LnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiI1NjEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
Detaljerad beskrivning av flöde.
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDk0NjE1MDkiLCJkaWFncmFtTmFtZSI6InBvYzZiIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6IlBPQyAoXCJ0b3Jyc2ltXCIpIiwidGJzdHlsZSI6ImlubGluZSIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6ZmFsc2UsIm1heFNjYWxlIjoiMSIsIm93bmluZ1BhZ2VJZCI6MzA1Mjk5NzQwLCJlZGl0YWJsZSI6ZmFsc2UsImNlb0lkIjozMDUyOTk3NDAsInBhZ2VJZCI6IiIsImxib3giOnRydWUsInNlcnZlckNvbmZpZyI6eyJkaXNhYmxlcGxhY2Vob2xkZXJzIjoiMSIsImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MiwibWFjcm9JZCI6ImQ1NDcyMmFlLTYzMzAtNDhjZC1hMTg3LWQyY2JhOTVkOTE0ZiIsInByZXZpZXdOYW1lIjoicG9jNmIucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6IjM4MSIsInNpbXBsZVZpZXdlciI6ZmFsc2UsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
- System har nu user-JWT från tidigare steg. System tillverkar en "client-JWT" enligt JWT Profile for Client Authentication. Både user-JWT och client-JWT anges i anrop till AS-B enligt RFC7523 samt scope "refapi".
- AS-B tar emot förfrågan och verifierar
- client-JWT - att identitet (iss) går att slå upp som entitet i metadata
- client-JWT - att signatur går kan verifieras genom nyckelmaterial på entitet i metadata
- client-JWT - att entitet (iss) har tillitsmärke för "EFI-pilot-tjänsteleverantor" knuten till sig
- client-JWT - att klient finns med i whitelist för klienter
- user-JWT - att identitet (iss) går att slå upp som entitet i metadata
- user-JWT - att signatur kan verifieras genom nyckelmaterial på entitet i metadata
- user-JWT - att entitet (iss) har tillitsmärke för "EFI-pilot-identitet" och "EFI-pilot-behorighet" knuten till sig
- AS-B tillverkar access token med sig själv som issuer, för över relevant information from user-JWT (samt eventuellt client-JWT) och krypterar denna. AS-B returnerar access token till System
Steg 4 - API-anrop mot API i organisation B
System har nu förutsättningar att utföra API-anrop mot API med åtkomstintyg som bärare av säkerhetsinformation.
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7XCJmb250Q3NzXCI6XCJAaW1wb3J0IHVybChcdTAwMjdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5XHUwMDNkUm9ib3RvOndnaHRANDAwOzUwMDs3MDBcdTAwMjZkaXNwbGF5XHUwMDNkc3dhcFx1MDAyNylcIixcImN1c3RvbUZvbnRzXCI6W1wiUm9ib3RvXCJdLFwiZGVmYXVsdEZvbnRzXCI6W1wiUm9ib3RvXCIsXCJIZWx2ZXRpY2FcIixcIlZlcmRhbmFcIixcIlRpbWVzIE5ldyBSb21hblwiLFwiR2FyYW1vbmRcIixcIkNvbWljIFNhbnMgTVNcIixcIkNvdXJpZXIgTmV3XCIsXCJHZW9yZ2lhXCIsXCJMdWNpZGEgQ29uc29sZVwiLFwiVGFob21hXCJdLFwicHJlc2V0Q29sb3JzXCI6W1wiOTgzNTc5XCIsXCJDQjlBQkNcIixcIkVBRDdFNFwiLFwiMDI1NzlCXCIsXCI4MEFCQ0RcIixcIkNDRERFQlwiLFwiMDI2OTVEXCIsXCI4MEI0QUVcIixcIkNDRTFERlwiLFwiRkVENDVCXCIsXCI1MkM3NkVcIixcIjMxN0IzNlwiLFwiMjQyNDI0XCIsXCJEM0QzRDNcIixcIkZGRkZGRlwiXSxcImRlZmF1bHRDb2xvclNjaGVtZXNcIjpbW251bGwse1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNDQ0RERUJcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjQ0NFMURGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn0se1wiZmlsbFwiOlwiI0ZGRlwiLFwic3Ryb2tlXCI6XCIjOTgzNTc5XCJ9LHtcImZpbGxcIjpcIiNGRkZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwifSx7XCJmaWxsXCI6XCIjRkVENDVCXCIsXCJzdHJva2VcIjpcIiNGRUQ0NUJcIn0se1wiZmlsbFwiOlwiIzMxN0IzNlwiLFwic3Ryb2tlXCI6XCIjMzE3QjM2XCJ9LHtcImZpbGxcIjpcIiM1MkM3NkVcIixcInN0cm9rZVwiOlwiIzUyQzc2RVwifSx7XCJmaWxsXCI6XCIjRkZGXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIn1dLFtudWxsLHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzk4MzU3OVwiLFwiZ3JhZGllbnRcIjpcIiNFQUQ2RTRcIn0se1wiZmlsbFwiOlwiI0VBRDZFNFwiLFwic3Ryb2tlXCI6XCIjMDI2OTVEXCIsXCJncmFkaWVudFwiOlwiI0NDRTFERlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiMwMjY5NURcIixcImdyYWRpZW50XCI6XCIjQ0NFMURGXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNTc5QlwiLFwiZ3JhZGllbnRcIjpcIiNDQ0RERUJcIn0se1wiZmlsbFwiOlwiI0VBRDdFNFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCIsXCJncmFkaWVudFwiOlwiI0NDRERFQlwifSx7XCJmaWxsXCI6XCIjQ0NEREVCXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIixcImdyYWRpZW50XCI6XCIjRUFEN0U0XCJ9XSxbbnVsbCx7XCJmaWxsXCI6XCIjOTgzNTc5XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzAyNTc5QlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiMwMjY5NURcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjQ0I5QUJDXCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiIzgwQUJDRFwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiM4MEI0QUVcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifSx7XCJmaWxsXCI6XCIjRUFEN0U0XCIsXCJzdHJva2VcIjpcIiM5ODM1NzlcIn0se1wiZmlsbFwiOlwiI0NDRERFQlwiLFwic3Ryb2tlXCI6XCIjMDI1NzlCXCJ9LHtcImZpbGxcIjpcIiNDQ0UxREZcIixcInN0cm9rZVwiOlwiIzAyNjk1RFwifV1dLFwiZGVmYXVsdENvbG9yc1wiOltcIm5vbmVcIixcIjk4MzU3OVwiLFwiRUFEN0U0XCIsXCI0QUM5RkZcIixcIjAyNTc5QlwiLFwiODBBQkNEXCIsXCJDQ0RERUJcIixcIjAyNjk1RFwiLFwiODBCNEFFXCIsXCJDQ0UxREZcIixcIjI0MjQyNFwiLFwiRDNEM0QzXCIsXCJGRkZGRkZcIl0sXCJkZWZhdWx0VmVydGV4U3R5bGVcIjp7fSxcImRlZmF1bHRFZGdlU3R5bGVcIjp7XCJlZGdlU3R5bGVcIjpcIm9ydGhvZ29uYWxFZGdlU3R5bGVcIixcInJvdW5kZWRcIjpcIjBcIixcImpldHR5U2l6ZVwiOlwiYXV0b1wiLFwib3J0aG9nb25hbExvb3BcIjpcIjFcIn0sXCJkZWZhdWx0TGlicmFyaWVzXCI6XCJnZW5lcmFsO2ltYWdlczt1bWw7ZXI7YnBtbjtmbG93Y2hhcnQ7YmFzaWM7YXJyb3dzMlwiLFwiZGVmYXVsdEN1c3RvbUxpYnJhcmllc1wiOltdLFwiZGVmYXVsdE1hY3JvUGFyYW1ldGVyc1wiOntcImJvcmRlclwiOmZhbHNlLFwidG9vbGJhclN0eWxlXCI6XCJpbmxpbmVcIn0sXCJjc3NcIjpcIlwiLFwicGx1Z2luc1wiOltdLFwidGh1bWJXaWR0aFwiOjQ2LFwidGh1bWJIZWlnaHRcIjo0NixcImVtcHR5RGlhZ3JhbVhtbFwiOlwiXHUwMDNjbXhHcmFwaE1vZGVsXHUwMDNlXHUwMDNjcm9vdFx1MDAzZVx1MDAzY214Q2VsbCBpZFx1MDAzZFx1MDAyNzBcdTAwMjcvXHUwMDNlXHUwMDNjbXhDZWxsIGlkXHUwMDNkXHUwMDI3MVx1MDAyNyBwYXJlbnRcdTAwM2RcdTAwMjcwXHUwMDI3L1x1MDAzZVx1MDAzYy9yb290XHUwMDNlXHUwMDNjL214R3JhcGhNb2RlbFx1MDAzZVwiLFwiZW1wdHlMaWJyYXJ5WG1sXCI6XCJcdTAwM2NteGxpYnJhcnlcdTAwM2VbXVx1MDAzYy9teGxpYnJhcnlcdTAwM2VcIixcImRlZmF1bHRFZGdlTGVuZ3RoXCI6ODAsXCJ2ZXJzaW9uXCI6XCIyLjZcIn0iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiIzMDUyOTk3NzciLCJkaWFncmFtTmFtZSI6InBvYzkiLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiUE9DIChcInRvcnJzaW1cIikiLCJ0YnN0eWxlIjoiaW5saW5lIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjpmYWxzZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjozMDUyOTk3NDAsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjMwNTI5OTc0MCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImRpc2FibGVwbGFjZWhvbGRlcnMiOiIxIiwiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoxLCJtYWNyb0lkIjoiZWFjZmY1NjktMDQ0ZC00NjJkLWFmYjEtNGI3MGZkZTg0NTRiIiwicHJldmlld05hbWUiOiJwb2M5LnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiI1NjEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
System kan nu utföra API-anrop till API och anger access token som Bearer token enligt RFCxxx. API verifierar att access token (genom signatur) är utställd (avkrypterar) av AS-B. API kontrollerar även scope.
Beskrivning av komponenter i POC
Användare
Användare representerar själva användaren ("personen bakom tangentbordet") och den klient användaren använder (webbläsare). E-legitimation används inte i POC, utan ersätts av praktiska skäl av användare och passord.
System
System representerar ett it-system i organisation A, som skulle kunna motsvaras av exempelvis ett journalsystem eller Pascal eller något liknande. Detta system har ett behov av att (föranlett av en aktivitet användaren utför i systemet) utföra ett API-anrop till API i organisation B. I POCen är detta en quarkus-applikation med följande funktionalitet:
- Agera webb-applikation
- Inloggning av användare
- SAML-SP mot SAML-IDP (SAML-SP är en keycloak-instans som gör request mot SAML-IDP, quarkus-applikationen kör OAuth code-flow mot keycloak).
- Möjlighet för användare (via "knapptryck") initiera API-anrop mot API
- OAuth-klient enligt Authorization code-flow mot AS-A för att begära user-JWT
- Tillverka signerad "klient-JWT" för client authentication mot AS-B
- OAuth-klient mot AS-B för att göra åtkomstbegäran med user-JWT samt klient-autentisering med client-JWT
- API-klient mot API för att utföra API-anrop med access token som bärare av säkerhetsinformation.
SAML-IDP
Den legitimeringstjänst som användaren använder för att göra en inloggning i System. Denna legitimeringstjänst används även av AS-A (som SAML-SP) för att köra webSSO. SAML-IDPn är en instans av Keycloak konfigurerad att agera SAML-SP. Den har lokala användare konfigurerade och autentisering av Användare sker med username, password.
- Agera SAML-IDP för System
- Agera SAML-IDP för AS-A (SSO)
- Autentisering av användare med username+password
- Är beskriven i Sambi-trial metadata
AS-A
Auktorisationstjänst i organisation A. Används av System för att begära åtkomstunderlag (user-JWT) för att i nästa steg används som underlag mot AS-B för åtkomstbegäran. AS-A är en Keycloak-instans som tillhandahåller ett OAuth auth code-flow mot System. Detta initierar ett webSSO-flöde mot SAML-IDP för göra SAML AuthnRequest för att få ut en SAML Response för användaren i fråga. AS-A är i detta flöde SAML-SP mot SAML-IDP. AS-A kommer vid lyckad autentisering (antingen via SSO eller ny autentisering av användaren)
- Tillhandahålla OAuth Auth code-flow för System
- Agera SAML-SP mot göra AuthnRequest mot SAML-IDP
- Överföra relevant information i SAML Response (AttributeStatement, AuthnContextClassRef) till JWT, samt signera denna JWT med privat nyckel
AS-B
Autktorisationstjänst i organisation B. Tar emot OAuth åtkomstförfrågan (enligt RFC7523) och ställer ut access token. Quarkus-applikation med följande funktionalitet:
- Implementerar RFC7523 avseende authorization grant (user-JWT)
- Implementerar RFC7523 avseende client credentials (client-JWT)
- Whitelisting av klienter
- Kontrollerar utfärdare, signering samt tillitsmärken för user-JWT mot Ena metadata via resolver/batch.
- Kontrollerar utfärdare, signering samt tillitsmärken för client-JWT mot Ena metadata via resolver/batch.
- Tillverkar och signerar access token
API
API representerar det "skyddade API" som System vill anropa. Detta är en Java-applikation som implementerar ett enkelt REST-API. Det relevanta i POC är att den tar emot och kontrollerar accesstoken, alltså att denna är signerad/krypterad av AS-B.
- REST-server
- Hantering/kontroll av accesstoken (Enligt RFC Bearer token)