Morning All, I'm trying to do almost the same as it was demoed here: https://www.youtube.com/watch?v=NorXJN3tw3Q&themeRefresh=1 [Break ice or don't login twice: FreeIPA and OAuth 2.0]. In particular I'm trying to let authorize linux ussers (ssh) with OAuth2.0 Azure AD. I already registered new app in Azure AD (so I have new Client ID), then I add new idp like it was described here: https://freeipa.readthedocs.io/en/latest/designs/external-idp/idp-api.html#microsoft-idps and https://freeipa.readthedocs.io/en/latest/workshop/12-external-idp-support.html#add-idp-reference-to-ipa. I created new user and attached him to AD idp.
Sadly I have some issues with make whole thing work. I run for this on clean fedora 37 OS: --- [root@ipa2 log]# cat /etc/fedora-release Fedora release 37 (Thirty Seven) --- I installed freeipa-server in version 4.10.1: --- [root@ipa2 log]# ipa --version VERSION: 4.10.1, API_VERSION: 2.251 --- and all components seems to be working: --- [root@ipa2 log]# ipactl status Directory Service: RUNNING krb5kdc Service: RUNNING kadmin Service: RUNNING httpd Service: RUNNING ipa-custodia Service: RUNNING pki-tomcatd Service: RUNNING ipa-otpd Service: RUNNING ipa: INFO: The ipactl command was successful --- However when im trying to do: --- [root@ipa2 ~]# kinit -T ./fast.ccache testuser2 Authenticate with PIN RJ4TEQ3KW at https://microsoft.com/devicelogin and press ENTER.: kinit: Preauthentication failed while getting initial credentials --- of course the link provided in commandilne is valid and i can proceed with the authorization with no issues and get SUCCESS at the end, however for freeipa the response is always the same: [kinit: Preauthentication failed while getting initial credentials.] I already noticed that the error occurs almost immiadetely after running [ kinit -T ./fast.ccache testuser2 ], so freeipa is not even waiting for me to log on https://microsoft.com/devicelogin website: I see in journactl such flow: --- [root@ipa2 log]# journalctl --follow /usr/libexec/ipa/ipa-otpd Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: testuser1@(MY DOMAIN HERE): idp query end: ad Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: testuser1@(MY DOMAIN HERE): oauth2 start: Get device code Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: testuser1@(MY DOMAIN HERE): Received: [{"device_code":"EAQABAAEAAAD--DLA3VO7QrddgJg7Wevr7iawpzAIiCTXDx5OKQCTvg3u_0IfN7car7U1-ErltsJ_HqupRB-wsm-ls_tCZYc3Z98zG-jVx_xXmZ7oIg5LkxswyAJocRVtTygHdN9sDrHb9lhfGYSZPizy0hEMKGHfhgPaiDtnW3muH-izoWktC_PXqqgJC08d2apcLI8RK6YgAA","expires_in":900,"interval":5} Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: oauth2 {"verification_uri": "https://microsoft.com/devicelogin", "user_code": "EWVEHBCR6"} Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: ] Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: testuser1@(MY DOMAIN HERE): sent: 0 data: 371 Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: testuser1@(MY DOMAIN HERE): ..sent: 371 data: 371 Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: testuser1@(MY DOMAIN HERE): response sent: Access-Challenge Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: oauth2.c:088: Child finished with status [0]. Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: Socket closed, shutting down... --- [Jan 18 14:45:49 ipa2.tribecloud.io ipa-otpd[2596]: testuser1@(MY DOMAIN HERE): response sent: Access-Challenge] - I have an impression that request is ended almost in the same second when it starts. In messages logs: --- Jan 18 15:13:42 ipa2 systemd[1]: /usr/lib/systemd/system/[email protected]:10: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether. Jan 18 15:13:42 ipa2 audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=ipa-otpd@19-1182-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' Jan 18 15:13:42 ipa2 systemd[1]: Started [email protected] - ipa-otpd service (PID 1182/UID 0). Jan 18 15:13:42 ipa2 ipa-otpd[2840]: LDAP: ldapi://%2Frun%2Fslapd-(MY DOMAIN HERE).socket Jan 18 15:13:42 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): request received Jan 18 15:13:42 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): user query start Jan 18 15:13:42 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): user query end: uid=testuser1,cn=users,cn=accounts,dc=tribecloud,dc=io Jan 18 15:13:42 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): idp query start: cn=ad,cn=idp,dc=tribecloud,dc=io Jan 18 15:13:42 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): idp query end: ad Jan 18 15:13:42 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): oauth2 start: Get device code Jan 18 15:13:43 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): Received: [{"device_code":"FAQABAAEAAAD--DLA3VO7QrddgJg7Wevr9pXKAjhGk35vFXJUS2CnmQ0ASimeHG_O_I9Ws_CW4GVxOBdb_80yKD2giSQ4SE9PzYEEuCYhzsq70plMMb8XQzgVbYUhe-Mfa85Zb96X8eUAD1PLRh6zO_2i5EMA_hsFXyhC-QDO_uOA64QsoHOFHP5C-FQTbaAYegdUiRlMWj4gAA","expires_in":900,"interval":5} Jan 18 15:13:43 ipa2 ipa-otpd[2840]: oauth2 {"verification_uri": "https://microsoft.com/devicelogin", "user_code": "FW5GFFLMH"} Jan 18 15:13:43 ipa2 ipa-otpd[2840]: ] Jan 18 15:13:43 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): sent: 0 data: 371 Jan 18 15:13:43 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): ..sent: 371 data: 371 Jan 18 15:13:43 ipa2 ipa-otpd[2840]: testuser1@(MY DOMAIN HERE): response sent: Access-Challenge Jan 18 15:13:43 ipa2 ipa-otpd[2840]: oauth2.c:088: Child finished with status [0]. Jan 18 15:13:43 ipa2 ipa-otpd[2840]: Socket closed, shutting down... Jan 18 15:13:43 ipa2 systemd[1]: [email protected]: Deactivated successfully. Jan 18 15:13:43 ipa2 audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=ipa-otpd@19-1182-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' --- User configuration: --- [root@ipa2 log]# ipa user-show testuser2 User login: testuser2 First name: Test Last name: User2 Home directory: /home/testuser2 Login shell: /bin/bash Principal name: testuser2@(MY DOMAIN HERE) Principal alias: testuser2@(MY DOMAIN HERE) Email address: testuser2@(MY DOMAIN HERE) UID: 608800004 GID: 608800004 User authentication types: idp External IdP configuration: ad External IdP user identifier: john@(MY DOMAIN HERE) Account disabled: False Password: False Member of groups: ipausers Kerberos keys available: False --- idp config: --- [root@ipa2 log]# ipa idp-show ad Identity Provider server name: ad Authorization URI: https://login.microsoftonline.com/(My tenant ID HERE)/oauth2/v2.0/authorize Device authorization URI: https://login.microsoftonline.com/(My tenant ID HERE)/oauth2/v2.0/devicecode Token URI: https://login.microsoftonline.com/(My tenant ID HERE)/oauth2/v2.0/token User info URI: https://graph.microsoft.com/oidc/userinfo JWKS URI: https://login.microsoftonline.com/common/discovery/v2.0/keys Client identifier: (MY client ID Here) Scope: openid email External IdP user identifier attribute: email --- I couldn't figure out what is going on, do you have any ideas, advices how I can solve that and let me to use OAuth with Azure AD? Best regards John _______________________________________________ FreeIPA-users mailing list -- [email protected] To unsubscribe send an email to [email protected] Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedorahosted.org/archives/list/[email protected] Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
