1"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([["14261"],{61928(e,n,t){t.r(n),t.d(n,{metadata:()=>s,default:()=>c,frontMatter:()=>l,contentTitle:()=>r,toc:()=>o,assets:()=>a});var s=JSON.parse('{"id":"api/secret/identity/mfa/duo","title":"duo","description":"The \'/identity/mfa/method/duo\' endpoint focuses on managing Duo MFA behaviors in OpenBao.","source":"@site/content/docs/api/secret/identity/mfa/duo.mdx","sourceDirName":"api/secret/identity/mfa","slug":"/api/secret/identity/mfa/duo","permalink":"/docs/next/api/secret/identity/mfa/duo","draft":false,"unlisted":false,"editUrl":"https://github.com/openbao/openbao/blob/main/website/content/docs/api/secret/identity/mfa/duo.mdx","tags":[],"version":"current","frontMatter":{"sidebar_label":"Duo","description":"The \'/identity/mfa/method/duo\' endpoint focuses on managing Duo MFA behaviors in OpenBao."},"sidebar":"api","previous":{"title":"Overview","permalink":"/docs/next/api/secret/identity/mfa/"},"next":{"title":"Okta","permalink":"/docs/next/api/secret/identity/mfa/okta"}}'),d=t(94686),i=t(44812);let l={sidebar_label:"Duo",description:"The '/identity/mfa/method/duo' endpoint focuses on managing Duo MFA behaviors in OpenBao."},r,a={},o=[{value:"Configure Duo MFA method",id:"configure-duo-mfa-method",level:2},{value:"Parameters",id:"parameters",level:3},{value:"Sample payload",id:"sample-payload",level:3},{value:"Sample request",id:"sample-request",level:3},{value:"Read Duo MFA method",id:"read-duo-mfa-method",level:2},{value:"Parameters",id:"parameters-1",level:3},{value:"Sample request",id:"sample-request-1",level:3},{value:"Sample response",id:"sample-response",level:3},{value:"Delete Duo MFA method",id:"delete-duo-mfa-method",level:2},{value:"Parameters",id:"parameters-2",level:3},{value:"Sample request",id:"sample-request-2",level:3},{value:"List Duo MFA methods",id:"list-duo-mfa-methods",level:2},{value:"Sample request",id:"sample-request-3",level:3},{value:"Sample response",id:"sample-response-1",level:3}];function h(e){let n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.h2,{id:"configure-duo-mfa-method",children:"Configure Duo MFA method"}),"\n",(0,d.jsx)(n.p,{children:"This endpoint defines an MFA method of type Duo."}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Method"}),(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Path"})]})}),(0,d.jsx)(n.tbody,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"POST"})}),(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"/identity/mfa/method/duo/:method_id"})})]})})]}),"\n",(0,d.jsx)(n.h3,{id:"parameters",children:"Parameters"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"method_id"})," ",(0,d.jsx)(n.code,{children:'(string: "")'})," - Optional UUID to specify if updating an existing method."]}),"\n"]}),"\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"method_name"})," ",(0,d.jsx)(n.code,{children:"(string)"})," - The unique name identifier for this MFA method."]}),"\n"]}),"\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"username_format"})," ",(0,d.jsx)(n.code,{children:"(string)"})," - A template string for mapping Identity names to MFA methods. Values to substitute should be placed in ",(0,d.jsx)(n.code,{children:"{{}}"}),". For example, ",(0,d.jsx)(n.code,{children:'"{{identity.entity.name}}"'}),". If blank, the Entity's Name field is used as-is."]}),"\n"]}),"\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"secret_key"})," ",(0,d.jsx)(n.code,{children:"(string: <required>)"})," - Secret key for Duo."]}),"\n"]}),"\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"integration_key"})," ",(0,d.jsx)(n.code,{children:"(string: <required>)"})," - Integration key for Duo."]}),"\n"]}),"\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"api_hostname"})," ",(0,d.jsx)(n.code,{children:"(string: <required>)"})," - API hostname for Duo."]}),"\n"]}),"\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"push_info"})," ",(0,d.jsx)(n.code,{children:"(string)"})," - Push information for Duo."]}),"\n"]}),"\n",(0,d.jsxs)(n.li,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.code,{children:"use_passcode"})," ",(0,d.jsx)(n.code,{children:"(bool: false)"})," - If true, the user is reminded to use the passcode upon MFA validation."]}),"\n"]}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"sample-payload",children:"Sample payload"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{\n "username_format": "{{identity.entity.aliases.auth_userpass_1793464a.name}}",\n "secret_key": "BIACEUEAXI20BNWTEYXT",\n "integration_key": "8C7THtrIigh2rPZQMbguugt8IUftWhMRCOBzbuyz",\n "api_hostname": "api-2b5c39f5.duosecurity.com",\n "method_name": "ns1_duo",\n}\n'})}),"\n",(0,d.jsx)(n.h3,{id:"sample-request",children:"Sample request"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-shell-session",children:'$ curl \\\n --header "X-Vault-Token: ..." \\\n --request POST \\\n --data @payload.json \\\n http://127.0.0.1:8200/v1/identity/mfa/method/duo\n'})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-shell-session",children:'$ curl \\\n --header "X-Vault-Token: ..." \\\n --request POST \\\n --data @payload.json \\\n http://127.0.0.1:8200/v1/identity/mfa/method/duo/4194659f-139b-400b-b5dd-86bfb726759d\n'})}),"\n",(0,d.jsx)(n.h2,{id:"read-duo-mfa-method",children:"Read Duo MFA method"}),"\n",(0,d.jsx)(n.p,{children:"This endpoint queries the MFA configuration of Duo type for a given method\nID."}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Method"}),(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Path"})]})}),(0,d.jsx)(n.tbody,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"GET"})}),(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"/identity/mfa/method/duo/:id"})})]})})]}),"\n",(0,d.jsx)(n.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"id"})," ",(0,d.jsx)(n.code,{children:"(string: <required>)"})," \u2013 UUID of the MFA method."]}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"sample-request-1",children:"Sample request"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-shell-session",children:'$ curl \\\n --header "X-Vault-Token: ..." \\\n --request GET \\\n http://127.0.0.1:8200/v1/identity/mfa/method/duo/4194659f-139b-400b-b5dd-86bfb726759d\n'})}),"\n",(0,d.jsx)(n.h3,{id:"sample-response",children:"Sample response"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{\n "data": {\n "api_hostname": "api-2b5c39f5.duosecurity.com",\n "id": "4194659f-139b-400b-b5dd-86bfb726759d",\n "integration_key": "BIACEUEAXI20BNWTEYXT",\n "pushinfo": "",\n "secret_key": "8C7THtrIigh2rPZQMbguugt8IUftWhMRCOBzbuyz",\n "type": "duo",\n "username_format": "{{identity.entity.aliases.auth_userpass_1793464a.name}}",\n "use_passcode": false\n }\n}\n'})}),"\n",(0,d.jsx)(n.h2,{id:"delete-duo-mfa-method",children:"Delete Duo MFA method"}),"\n",(0,d.jsxs)(n.p,{children:["This endpoint deletes a Duo MFA method. MFA methods can only be deleted if they're not currently in use\nby a ",(0,d.jsx)(n.a,{href:"/docs/next/api/secret/identity/mfa/login-enforcement",children:"login enforcement"}),"."]}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Method"}),(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Path"})]})}),(0,d.jsx)(n.tbody,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"DELETE"})}),(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"/identity/mfa/method/duo/:id"})})]})})]}),"\n",(0,d.jsx)(n.h3,{id:"parameters-2",children:"Parameters"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"id"})," ",(0,d.jsx)(n.code,{children:"(string: <required>)"})," - UUID of the MFA method."]}),"\n"]}),"\n",(0,d.jsx)(n.h3,{id:"sample-request-2",children:"Sample request"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-shell-session",children:'$ curl \\\n --header "X-Vault-Token: ..." \\\n --request DELETE \\\n http://127.0.0.1:8200/v1/identity/mfa/method/duo/4194659f-139b-400b-b5dd-86bfb726759d\n'})}),"\n",(0,d.jsx)(n.h2,{id:"list-duo-mfa-methods",children:"List Duo MFA methods"}),"\n",(0,d.jsx)(n.p,{children:"This endpoint lists Duo MFA methods that are visible."}),"\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Method"}),(0,d.jsx)(n.th,{style:{textAlign:"left"},children:"Path"})]})}),(0,d.jsx)(n.tbody,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"LIST"})}),(0,d.jsx)(n.td,{style:{textAlign:"left"},children:(0,d.jsx)(n.code,{children:"/identity/mfa/method/duo"})})]})})]}),"\n",(0,d.jsx)(n.h3,{id:"sample-request-3",children:"Sample request"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-shell-session",children:'$ curl \\\n --header "X-Vault-Token: ..." \\\n --request LIST \\\n http://127.0.0.1:8200/v1/identity/mfa/method/duo\n'})}),"\n",(0,d.jsx)(n.h3,{id:"sample-response-1",children:"Sample response"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{\n "data": {\n "ke
1ys": [\n "4194659f-139b-400b-b5dd-86bfb726759d"\n ]\n }\n}\n'})})]})}function c(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(h,{...e})}):h(e)}},44812(e,n,t){t.d(n,{R:()=>l,x:()=>r});var s=t(92990);let d={},i=s.createContext(d);function l(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.