[
https://issues.apache.org/jira/browse/NIFI-7310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17379588#comment-17379588
]
Sean Xu commented on NIFI-7310:
-------------------------------
any eta for this issue to be fixed. It is a blocker for us to deploy nifi flow
into production as Authorization header display access token.
> Improve experience configuring Authorization header for HTTP processors
> -----------------------------------------------------------------------
>
> Key: NIFI-7310
> URL: https://issues.apache.org/jira/browse/NIFI-7310
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Extensions
> Affects Versions: 1.11.4
> Reporter: Andy LoPresto
> Priority: Major
> Labels: authorization, header, http, parameter, security
>
> As discussed in the Apache NiFi slack room (see transcript below), the
> {{InvokeHTTP}} processor (among others) often requires an {{Authorization}}
> HTTP header [1] to successfully make a request to an external service. This
> header includes an authorization _type_ (e.g. {{Basic}}, {{Bearer}},
> {{Digest}}, {{Negotiate}}, {{OAuth}}, etc.) [2] and the _credentials_ (e.g.
> the plaintext or Base64-encoded username & password, a JWT token, etc.) [3].
> While the JWT value (for example) can be supplied with a parameter, the
> limitations on sensitive parameters make this process more difficult –
> non-sensitive parameters are stored in plaintext and synced with flow
> versioning to an unsecured persistence layer, while sensitive parameters are
> prohibited from any modification in property descriptor fields (i.e. one
> cannot prepend {{"Bearer: #\{jwtSensitiveParam}"}} as one could with
> {{"Other-prefix: #\{nonSensitiveParam}"}}).
> One option is to make the {{Authorization}} header a permanent, non-required
> property descriptor in the component rather than being added only via a
> dynamic property. The value (credentials) could be a sensitive parameter and
> the type could be determined dynamically by evaluating the value, or a
> sibling property of {{Authorization Type}} could be selected from a drop-down
> of {{AllowableType}} entries to improve user experience and validation.
> {quote}Martin Ebert 12:34
> I have a problem. I can synchronize the registry nicely automated with
> Github. So far so good. But now I need certain keys e.g. Bearer Token. I
> store them in the parameter Context. To use them in Invoke HTTP I must not
> declare the token as a sensitive value. But now I have a problem: The token
> is also displayed in Github. No-Go. How can I fix this?
> 12:35
> I assumed that the values from the Context parameter are not synchronized
> with Github at all.
> Bryan Bende Today at 12:36
> why would it not be stored as a sensitive parameter?
> Andy LoPresto 15 minutes ago
> Because to craft the fully-formed header you need to prepend it with
> `Bearer: `.
> Andy LoPresto 15 minutes ago
> This is a unique edge case.
> Andy LoPresto 14 minutes ago
> It might make sense to add a static "Authorization" header property
> descriptor to this component because it's often required.
> Pierre Villard:nifi: 14 minutes ago
> this can be part of the parameter value, no?
> Andy LoPresto 14 minutes ago
> And a separate PD which determines the kind of token (JWT, cookie, etc.).
> Bryan Bende 14 minutes ago
> so the issue is its being used in a dynamic prop on InvokeHttp and those are
> not sensitive props?
> Andy LoPresto 14 minutes ago
> Yes, Pierre, it can be. Just makes it harder to generate dynamically and
> populate it.
> Pierre Villard:nifi: 14 minutes ago
> I see
> Andy LoPresto 14 minutes ago
> Bryan, it's that we restrict sensitive parameters and prohibit them from
> concatenation.
> Andy LoPresto 13 minutes ago
> You can do Bearer: #\{nonSensitiveParameter} just fine.
> Andy LoPresto 13 minutes ago
> You can't do Bearer: #\{sensitiveParameter}.
> Bryan Bende 13 minutes ago
> i see, well +1 to the new properties you suggested
> Andy LoPresto 12 minutes ago
> I'll create a ticket.
> Andy LoPresto 11 minutes ago
> It could use more thought so I won't prescribe that's the only way to move
> forward, but just to improve this experience in general.
> Andy LoPresto 11 minutes ago
> For today, Pierre's suggestion is probably the easiest to implement.
> {quote}
> [1] [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization]
> [2]
> [https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml]
> [3] [https://tools.ietf.org/html/rfc4559#page-2]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)