JHipster与Azure的Active Directory中,而不是Keycloak或1563

问题描述 投票:0回答:2

我想开发一个SaaS应用程序,并在Azure上部署它。由于业务逻辑会不会太复杂,所以我想作为一个入门套件JHipster使用。该应用程序将有两种类型的用户:这要使用Office 365帐户登录到应用程序的“办公室”的用户,并且想用自己的社交网络帐户像谷歌或Facebook或简单地创建一个新的本地帐户的“正常”的用户。所有账户应通过Azure的管理,没有密码应储存在我们的数据库。

第一个问题是关于Azure的:我应该使用哪种类型的AAD的? B2B还是B2C?或两者的混合?

其次关于JHipster:是否有可能配置JHipster反对AAD验证用户身份?我应该在有关身份验证创建JHipster的应用问题选择哪个选项?

第三个关于Azure的:这将是很好,如果“办公室”的用户可能对我们的SaaS应用程序添加到应用程序的Office 365的主屏幕列表。可能吗?

我只有“内部部署”的经历,所以也许我的问题很简单,但这些是我的第一个步骤到任何云,在这种情况下,到Azure上。

问候,亚采

azure azure-active-directory jhipster
2个回答
1
投票

预修课程:您需要注册了您的应用程序在蔚蓝的租户,并获取客户端ID和密码。 qazxsw POI

在这样的你application.yml文件中的设置,你应该连接到蔚蓝的广告。

Register App

您将需要更新UserService类方法的getUser()拉下正确的信息。

# ===================================================================
# OpenID Connect Settings. Default settings are for Azure
# ===================================================================
security:
    oauth2:
    client:
        access-token-uri: https://login.microsoftonline.com/common/oauth2/token
        user-authorization-uri: https://login.microsoftonline.com/common/oauth2/authorize
        client-id: <<yourclientid>>
        client-secret: <<yourregistry>>
        client-authentication-scheme: query
        preEstablishedRedirectUri: http://localhost:8885/login
        useCurrentUri: false
    resource:
        user-info-uri: https://graph.windows.net/me?api-version=1.6
        id:  https://graph.windows.net/

0
投票

是不是调用图形API一个GET而不是POST?这是否获得对后来jhipster版本改变了吗?如果是这样那么一些更多的工作需要做改变操作。另外,我不认为用户信息-URI:private static User getUser(Map<String, Object> details) { User user = new User(); user.setId((String) details.get("userPrincipalName")); user.setLogin(((String) details.get("userPrincipalName")).toLowerCase()); if (details.get("givenName") != null) { user.setFirstName((String) details.get("givenName")); } if (details.get("surname") != null) { user.setLastName((String) details.get("surname")); } if (details.get("displayName") != null) { user.setDisplayName((String) details.get("displayName")); } if (details.get("email_verified") != null) { user.setActivated((Boolean) details.get("email_verified")); } if (details.get("userPrincipalName") != null) { user.setEmail(((String) details.get("userPrincipalName")).toLowerCase()); } if (details.get("langKey") != null) { user.setLangKey((String) details.get("langKey")); } else if (details.get("locale") != null) { String locale = (String) details.get("locale"); if (locale.contains("-")) { String langKey = locale.substring(0, locale.indexOf("-")); user.setLangKey(langKey); } else if (locale.contains("_")) { String langKey = locale.substring(0, locale.indexOf("_")); user.setLangKey(langKey); } } if (details.get("[email protected]") != null) { user.setImageUrl((String) details.get("[email protected]")); } user.setActivated(true); return user; } 端点给你,你将不得不作出第二个电话用户角色(AD组)。当然这取决于你的IDP是如何进行内部配置。

© www.soinside.com 2019 - 2024. All rights reserved.