npm 包 @deloittesolutions/passport-azure-ad 使用教程

阅读时长 11 分钟读完

什么是 @deloittesolutions/passport-azure-ad?

@deloittesolutions/passport-azure-ad 是一个基于 Passport 的用于认证和授权微软 Azure AD (Active Directory) 的 Node.js 库。正常情况下,当用户在管理 Azure 帐户时,需要使用用户名和密码进行身份验证,@deloittesolutions/passport-azure-ad 可以帮助开发者在应用程序中使用 Azure AD 作为身份验证提供者。

如何使用 @deloittesolutions/passport-azure-ad

准备工作

  1. 首先你需要在 Azure AD 中创建一个应用程序,获取下面属性:
  • clientID: 应用程序 ID。

  • clientSecret: 应用程序机密。

  • callbackURL: 验证完成后需要重定向到的 URL。

  • identityMetadata: Azure AD 租户上的 OpenID 连接元数据文档的 URL。

  1. 安装 @deloittesolutions/passport-azure-ad:

导入模块

在你的应用程序中,你需要导入以下模块:

配置 OIDCStrategy

在你的应用程序中,你需要配置 OIDCStrategy。这可以通过以下代码完成:

-- -------------------- ---- -------
---------------- --------------
  ----------------- --------------------------------------------------------------------------------------------------------
  --------- -------------------
  ------------- ----- ----------
  ------------- ------------
  ------------ ----------------------------------------------
  ------------------------ -----
  ------------- -----------------------
  --------------- ------
  ------------------ ------
  ------ ----------- ------------------
--
  -------- ----- ---- -------- ------------ ------------- ----- -
    -- -------------- -
      ------ -------- --------- --- -------- ------
    -
    -- ------------ ------------- --- ---------
    ------------------------- -- -
      ------ ---------- ---------
    ---
  -
---

上面的代码定义了所有必需的参数,这些参数是:

  • clientIDclientSecret: 从 Azure AD 应用程序设置中获取。

  • identityMetadata:Azure AD 租户上的 OpenID 连接元数据文档的 URL。可以在 Azure AD 的“凭据”下面找到该 URL。

  • redirectUrl:在成功验证时将用户重定向到的地址。

  • responseTyperesponseMode: 在应用程序收到用户回调时的操作,这是所需的值。

  • scope:应用程序需要的权限。

配置 express.js

让你的应用程序支持 passport.js,你需要通过以下代码来配置 express.js:

-- -------------------- ---- -------
----- ------- - -------------------
----- -------- - --------------------
----- ------------ - -------------------------
----- ------- - ---------------------------
----- --- - ----------
------------------------
-----------------
  ------- ------
  ------- ------
  ------------------ -----
----
-------------------------------
----------------------------

路由

现在,我们需要处理几个路由:

-- -------------------- ---- -------
------------
  -------- ----- ---- -
    ------------------- -
      ---------------- ----------------------
      ----- -------- - -------- - --
    ---
  -
--

-----------------
  -------- ----- ---- -
    --------------------
  -
--

------------------
  ---------------------------------------------- -
    ---------------- --------
  ---
  -------- ----- ---- -
    ------------------
  -
--

------------------ -------- ----- ---- -
  ---------------------------- ----- -
    -------------
    ------------------
  ---
---

--------------------------------
  ---------------------------------------------- -
    ---------------- --------
  ---
  -------- ----- ---- -
    ------------------
  -
--

在这个例子中,我们定义了以下路由:

  • /:站点的主页,根据用户是否已验证来显示不同的结果。

  • /login:用于登录的页面。

  • /logout:用于注销的页面。

  • /auth/openid/callback:用于处理 Azure AD 回调的页面。

Views

创建视图来呈现 HTML,我们需要使用模板引擎。在这个例子中,我们将使用 EJS。

要使用 EJS,需要先安装以下模块:

请注意,安装模块后,我们需要将模板引擎注册到 express.js。

然后,我们创建两个视图,分别为 login.ejs 和 index.ejs。在 login.ejs 中,我们将创建登录表单:

-- -------------------- ---- -------
----- ------------- ----------------
  ---- -------------------
    ------ -------------------------------
    ------ ----------- -------------------- ------------- --------------- -----------------------
  ------
  ---- -------------------
    ------ -------------------------------
    ------ --------------- -------------------- ------------- --------------- -----------------------
  ------
  ------- ------------- ---------- ----------------------------
-------

在 index.ejs 中,我们将根据用户是否已验证来显示不同的消息。

Example Code

最后,完成所有准备工作后,完整的示例代码如下所示:

-- -------------------- ---- -------
----- ------- - -------------------
----- -------- - --------------------
----- ------------ - -------------------------------------------------------------
----- ------------ - -------------------------
----- ------- - ---------------------------
----- --- - ---------------
----- --- - ----------

------------------------
-----------------
  ------- ------
  ------- ------
  ------------------ -----
----
-------------------------------
----------------------------

---------------- --------------
  ----------------- --------------------------------------------------------------------------------------------------------
  --------- -------------------
  ------------- ----- ----------
  ------------- ------------
  ------------ ----------------------------------------------
  ------------------------ -----
  ------------- -----------------------
  --------------- ------
  ------------------ ------
  ------ ----------- ------------------
--
  -------- ----- ---- -------- ------------ ------------- ----- -
    -- -------------- -
      ------ -------- --------- --- -------- ------
    -
    ------------------------- -- -
      ------ ---------- ---------
    ---
  -
---

------------
  -------- ----- ---- -
    ------------------- -
      ---------------- ----------------------
      ----- -------- - -------- - --
    ---
  -
--

-----------------
  -------- ----- ---- -
    --------------------
  -
--

------------------
  ---------------------------------------------- -
    ---------------- --------
  ---
  -------- ----- ---- -
    ------------------
  -
--

------------------ -------- ----- ---- -
  ---------------------------- ----- -
    -------------
    ------------------
  ---
---

--------------------------------
  ---------------------------------------------- -
    ---------------- --------
  ---
  -------- ----- ---- -
    ------------------
  -
--

---------------- -----------
------------- -------- -------

---------------- -- -- -
  ---------------------- -- ------------------------
---

以上就是对 @deloittesolutions/passport-azure-ad 的详细教程,希望可以帮助到需要开发基于 Azure AD 的应用程序的开发者和程序员。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d2e81e8991b448daeb4

纠错
反馈